首页 > 代码库 > vim学习笔记(1)——vim操作

vim学习笔记(1)——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 补全命令

參考资料:

  • vmtutor
  • http://coolshell.cn/articles/5426.html
<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

vim学习笔记(1)——vim操作