【笔记】Vim的操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【笔记】Vim的操作相关的知识,希望对你有一定的参考价值。

参考技术A 刚打开文件时Vim处于命令模式,此时文件的下方会显示文件的一些信息,包括文件的总行数和字符数,以及当前光标所在的位置等。

例如,要将某文件中所有的"root"替换为"liudehua",则有两种输入命令,分别为:

注意,被删除的内容并没有真正删除,都放在了剪贴板中。将光标移动到指定位置处,按下 "p"键,就可以将刚才删除的内容又粘贴到此处。

某些情况下,可能需要把两行进行连接。比如说,下面的文件中有两行文本,现在需要将其合并成一行(实际上就是将两行间的换行符去掉)。可以直接在命令模式中按"J"键。

Vim的保存和退出是在编辑模式中进行的。

需要注意的是,"w!"和"wq!"等类似的指令,通常用于对文件没有写权限的时候(显示 readonly,如图12所示),但如果你是文件的所有者或者root用户,就可以强制执行。

程序员在编辑程序时,经常会为将光标移动到与一个 "(" 匹配的 ")" (对于 [] 和 也是一样的)处而感到头疼。Vim里面提供了一个非常方便地査找匹配括号的命令,这就是 "%"。

在编辑文件时,可以使用Vim同时打开两个文件,每个文件分别占用一个窗口。
例如,在査看 /etc/passwd 时需要参考 /etc/shadow,有两种办法可以实现:

连续行的注释其实可以用替换命令来完成。换句话说,在指定范围行加"#"注释,可以使用 ":起始行,终止行 s/^/#/g",例如:

取消连续行注释,则可以使用":起始行,终止行s/^#//g",例如:

添加"//"注释要稍微麻烦一些,命令格式为":起始行,终止行 s/^////g"。例如:

以上方法可以解决连续行的注释问题,如果是非连续的多行就不灵了,这时我们可以定义快捷键简化操作。格式如下:

在命令模式下输入":set nu"即可显示每一行的行号,如果想要取消行号,则再次输入":set nonu"即可。
如果希望每次打开文件都默认显示行号,则可以编辑Vim的配置文件。每次使用Vim 打开文件时,Vim 都会到当前登录用户的宿主目录(用户配置文件所在地)中读取 .vimrc 文件,此文件可以对 Vim 进行一些默认配置设定。

Vim 配置文件分为系统配置文件和用户配置文件:

vim学习笔记——vim操作

仅记录一些自己最经常使用的vim操作。随时更新

文本操作

  • d 剪切。双击剪切一行
  • y 复制,双击复制一行
  • p 粘贴

  • x 删除当前光标下字符

  • r 替换当前光标字符。后面接替换的字符

  • :s/old/new/g 全局替换old为new

移动

  • 0 移动到开头
  • $ 移动到结尾
  • w 移动到下一个单词开头
  • e 移动到下一个单词结尾

  • fx 移动到本行之后第一个出现x字母的位置

  • tx 移动到本行之后第一个出现x字母的前一个位置

  • gg 跳到文件首

  • G 跳到文件尾
  • NG 移动到第N行,或者用:N也可

  • { 上一段。}下一段

  • % 跳到匹配的括号处

  • ctrl+o 上一个位置

  • ctrl+i 下一个位置

文本移动和操作相互配合使用。比方d$+enter删除到行末,dw删除至下一个单词,2dd删除接下来两行

也能够和数字相互使用,比方y+enter5,复制下面5行,:1,20d+enter删除1~20行

模式切换

插入模式

  • i 进入插入模式。当前插入光标位置插入
  • a 进入插入模式,下一个光标位置插入
  • o 进入插入模式,在当前行下一行插入
  • O 进入插入模式。在当前行上一行插入

可配置vim成鼠标光标定位模式

可视化模式

  • :v 进入可视化模式

替换模式

  • :R 进入替换模式

使用外部命令

  • :! 在!后加入外部命令

查找

  • :/ 在/后加入要查找的内容

进入查找时。按n查找下一个,N查找上一个

文件操作

保存文件

  • :w 保存
  • :saveas filename 另存为

退出

  • :q

保存退出vim

vim中保存退出:x和:wq的差别。例如以下:
:wq和ZZ 强制性写入文件并退出(存盘并退出 write%quite)。即使文件没有被改动也强制写入。并更新文件的改动时间。
:x 写入文件并退出。仅当文件被改动时才写入,并更新文件改动时间。否则不会更新文件改动时间。

这两者普通情况下没什么不一样,可是在编程方面,对编辑源文件可能会产生重要影响。由于文件即使没有改动,”:wq”强制更新文件的改动时间。这样会让make编译整个项目时以为文件被改动过了。然后就得又一次编译链接生成可运行文件。

这可能会产生让人误解的后果。当然也产生了不必要的系统资源花销。

操作回退和重做

  • u 撤销上一个改动
  • U 撤销本行所做的改动过
  • ctrl+r 重做操作

其它

  • ctrl+g 显示当前文件信息
  • ctrl+d 补全命令

參考资料:

以上是关于【笔记】Vim的操作的主要内容,如果未能解决你的问题,请参考以下文章

vim学习笔记——vim操作

vim使用笔记01——常用模式与操作

vim使用笔记01——常用模式与操作

vim笔记

vim学习笔记删除操作

vim学习笔记