vim学习笔记

还是要经常折腾一下

最近稍微折腾了一下vim,大家都知道linux环境下如果vim操作的足够熟练,完全可以替代各种文本编辑器,然而自己对vim的操作仍停留在最原始和基础的命令,只会简单的增删改查,比如删除d,进入编辑模式i,复制粘贴y&p,代码上下翻阅左右箭头,看到这你估计都惊呆了,怎么这么low!也是由于近期经常需要到仿真机上修改代码,发现自己vim编辑效率超级低,这才想着好好过一遍vim指令,提高逼格!^_^

vim配置文件.vimrc

这个文件是vim的配置文件,在这里配置一下全局生效,更加丰富的配置后续逐步学习

  1. 比如之前每次查代码行数都要 :set nu,如果写在.vimrc就不用每次都:set nu了。
  2. 比如写完一行代码enter换行后,又从头再来,必须手动tab缩进。。。
1
2
set number # 显示行号
set autoindent # 自动缩进

vim模式

我们知道vim的模式【insert模式、普通模式、visual模式】中insert模式visual模式是不能直接互跳的,必须先返回到普通模式!普通模式下:进入命令模式
快速进入insert模式:普通模式下输入 i/o/a,esc返回到普通模式
快速进入visual模式:普通模式下输入 v,再次v返回到普通模式

普通模式下快速跳转

不要只会箭头上下左右了!这个能提高效率

1
2
3
4
5
6
7
8
gg(1G)  # 文件顶部 
G # 文件尾部
control + [ # 向上片段移动
control + ] # 向下片段移动
j # 下一行
k # 上一行
w # 下一个单词
b # 上一个单词

复制粘贴一块代码

  1. 按Esc切换到正常模式;
  2. 把光标移到你需要复制的代码行首;
  3. 按V选择整行,可移动光标选择多行;
  4. 按d剪切或按y复制选择的代码;
  5. 移动光标到你需要粘贴的位置,按p粘贴代码到光标后的位置,或按P粘贴到光标前。

删除

下面命令必须先将鼠标移动到指定位置或指定行

  • 字母x 删除当前定位的字母
  • dw 删除当前鼠标所在的单词 db向前删除一个单词
  • 5dd删除从当前行开始(包括当前行在内)的5行
  • dG 输入d,然后shift+g(或大写G)
  • 删除21-94行之间的内容,鼠标在第10行,如何快速删除!记住!总是忘记!:21,94d

命令模式

普通模式下/搜索,n下一个,N上一个
普通模式下:e filepath/file打开file
批量替换:%s/word1/word2/g
复制一个文件全部内容到当前文件的指定位置:read filepath/file

撤销或重做

u撤销,ctrl+r重做(像sublime的cmd+y)

快速进入insert模式

普通模式下,随处都可以进入编辑模式,可能之前你只注意到i命令,其实还有两个非常实用的命令ao
a–从当前鼠标定位开始,立刻可编辑
o–立刻换行编辑

代码注释

代码注释:

  • 按v切换到可视化模式;
  • 移动光标(j或k)选中需要注释的行的开头;
  • 按大写I,然后输入注释符,如#;
  • 最后按Esc。

取消注释:

  • 按Ctrl+v切换到可视化模式;
  • 按j或k选择要删除的注释符;
  • 按d或x删除注释符

通过学习,效率有所提高,但vim更加丰富的功能还需要进一步探索,计划上面的命令使用非常熟练自如后再进行第二阶段的学习和探索–命令模式和目录可视化的打造。

vim键盘图

vim-keyboard

参考文章

https://www.shiyanlou.com/questions/3176
http://harttle.com/2015/11/07/vim-cursor.html