vim 编辑器的一些使用

本贴最后更新于 2297 天前,其中的信息可能已经时过境迁

10.1 vim 编辑器

vi 编辑器是 Unix 系统最初的编辑器。在 GNU 项目将 vi 编辑器移植到开源世界时,他们做了一些改进,并将它重新命名为 vi improved,或 vim。

10.1.1 检查 vim 软件包

在开始研究 vim 编辑器之前,最好先搞明白你所用的 Linux 系统是哪种 vim 软件包。

$ alias vi
alias vi='vim'
$
$ which vim
/usr/bin/wim
$
$ ls -l /usr/bin/vim
-rwxr-xr-x. 1 root root 19677072 Apr 5 2012 /usr/bin/vim
$

在 Ubuntu 中安装基础版的 vim 包:$ sudo apt-get install vim

10.1.2 vim 基础

vim 在内存缓冲区中处理数据。

如在启动 vim 时未指定文件名,或者文件不存在,vim 会开辟一段新的缓冲区域来进行编辑。

如果文件是新建的,会在底部消息行出现消息 [New File]。

vim 有两种操作模式:普通模式、插入模式。
刚打开时会进入普通模式,此时 vim 会将你的按键解释成命令,按下 i 键就可以进入插入模式,退回普通模式按 ESC键

普通模式中:
移动光标:

  • h:“左”(移一个字符);
  • j:“下”(移一行);
  • k:“上”;
  • l:“右”。

快速移动光标:

  • Ctrl+FPageDown):下翻一屏;
  • Ctrl+BPageUp):上翻一屏;
  • G:移到缓冲区的最后一行;
  • num G:移到缓冲区中的第 num 行;
  • gg:移到缓冲区的第一行。

普通模式下还有一个命令行模式,在普通模式下按 : 启动。下面是几个常用命令:

-q:如果未修改缓冲区数据,退出;
-q!:取消所有对缓冲区数据的修改并退出;
-w filename:将文件保存到另一个文件中;
-wq:将缓冲区数据保存到文件中并退出。

10.1.3 编辑数据

在插入模式下,你可以向缓冲区插入数据。

在普通模式下,vim 提供了一些命令来编辑缓冲区中的数据:

命令 描述
x 删除当前光标所在位置的字符
dd 删除当前光标所在的
dw 删除当前光标所在位置的单词
d$ 删除当前光标所在位置至行尾的内容
J 删除当前光标所在行行尾的换行符(拼接行)
u 撤销前一编辑命令
a 在当前光标后追加数据
A 在当前光标所在行行尾追加数据
r char 用 char 替换当前光标所在位置的单个字符
R text 用 text 覆盖当前光标所在位置的数据,直到按下 ESC 键

10.1.4 复制和粘贴

剪切
vim 删除数据时,实际上会将数据保存在一个寄存器中,可以用 p 命令取回数据。

复制
vim 中复制是 y(yank)。

  • yd:复制光标所在行;
  • yw:复制光标所在单词;
  • y$:复制至行尾。

复制后,把光标移至想要粘贴的地方,输入 p 命令就可以完成粘贴。

10.1.5 查找和替换

查找
查找一个字符,普通模式下,按斜线(/),输入想要查找的文本,按回车键。要查找的文本就会高亮显示。取消高亮,输入 :nohl

替换
替换的命令格式::s/old/new(只用这个最基础版命令只能替换当前光标所在行的第一个字符串)

-:s/old/new/g:替换当前光标所在行所有 old;
-:n,ms/old/new/g:替换行号 n 和 m 之间所有 old;
-:%s/old/new/g:替换整个文件中的所有 old;
-:%s/old/new/gc:替换整个文件中的所有 old(常用);

  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    943 引用 • 943 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...