强大的编辑器VIM
学linux的时候肯定会接触到vi和vim,只是可能有很多人(比如我)会选择性的丢弃一些东西,看到实验室对面的大佬用VIM编辑器写代码,效率不要太快,所以呀,该学的还是得学的,之前丢了现在只能补回来。
直接看参考连接,这个文档只是为了记录学习过程,并不是为了整理学习教程,所以文档是符合我自己的习惯的,如果想学VIM直接看参考链接即可
常用命令
常用模式
- 插入模式(insert):
i
进入插入即编辑模式 - 命令模式(normal)
- ESE: 回到命令模式
常用命令
光标移动
- h: 向左移动一个字符
- j: 向下移动
- k: 向上移动
- l: 向右移动
其他命令
- u: 撤销修改
- U: 撤销一整行的修改
- i: 进入编辑模式,在当前光标前插入
- I: 进入编辑模式,在行首插入
- a: 进入编辑模式,在当前光标后插入
- A: 进入编辑模式,在当前行行末插入
- x: 删除光标处所在字符
- xD: 删除光标处所在字符到行末的内容
- X: 删除光标前的字符
- :help
: 显示命令帮助 - w/W: 跳转到下一个单词的第一个字符
- b/B: 跳转到上一个单词第一个字符
- e/E: 跳转到单词的最后一个字符,或者下一个单词的最后一个字符
- 2e: 跳到下一个单词的末尾
- 如果你认为单词是由默认方式,那么就用小写的e和w。默认上来说,一个单词由字母,数字和下划线组成
- 如果你认为单词是由blank字符分隔符,那么你需要使用大写的E和W。
w/W(b/B,e/E, h(j,k,l)等操作): 代表数字,指定w/W(b/B,e/E等操作)进行操作的次数 - 比如:插入30个’-‘,命令为
30i-
,然后esc,注意esc不退出的话,并不会完成30次的操作
- 比如:插入30个’-‘,命令为
- f/F
: 查找字母,f向右查找,F向右查找 - tx:和上面的命令类似,但是是移动到 x 的左边一个位置。(这真的很有用)
- 0: 跳得到行首
- $: 跳到行末
- ^: 跳到本行第一个不是blank的字符的位置(所谓blank字符就是空格,tab,换行,回车等))
- /#: 查找光标下的字母,\向后查找,#向前查找
- gg: 跳到文件头
- G: 跳到最后一行的行首
G: 跳到第 行
- /
: 查找 文本,n跳到下一个,N跳到上一个 - o/O: 插入新行,o在当前行后面插入一行,O在当前行前插入一行
- r: 替换光标处的字符
- R: 进入替换模式
d: 删除,可与其他键合用,如: dw,d3G(光标所在处到第三行都删除)
- dd: 删除当前行,同时复制到剪切板
- 3dd: 删除三行
- dw: 删除当前单词
- d$/D: 删除光标所在处至行末
- p: 光标前粘贴剪切板的内容
- P: 光标后粘贴剪切板的内容
- cw: 更改单词
- c$/C: 更改至行末
v: visiual模式,有显示模式
- % : 匹配括号移动,包括 (, {, [. (陈皓注:你需要把光标先移到括号上)
- * 和 #: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)
- 0y$:
- 0 → 先到行头
- y → 从这里开始拷贝
- $ → 拷贝到本行最后一个字符
- 你可可以输入 ye,从当前位置拷贝到本单词的最后一个字符。
- 你也可以输入 y2/foo 来拷贝2个 “foo” 之间的字符串。
- 还有很多时间并不一定你就一定要按y才会拷贝,下面的命令也会被拷贝:
- d (删除 )
- v (可视化的选择)
- vw: 可视化模式下选择单词
- vwd or vwx: 可视化模式下选择下一单词第一个字符,然后删除选中部分
- gU (变大写)
- gu (变小写)
- t, → 到逗号前的第一个字符。逗号可以变成其它字符。
- 3fa → 在当前行查找第三个出现的a。
- F 和 T → 和 f 和 t 一样,只不过是相反方向。
- 还有一个很有用的命令是 dt” → 删除所有的内容,直到遇到双引号—— “。
- ctrl+o: 跳转到上一位置(往前跳)
- ctrl+i: 跳转到下一位置(往回跳)
- %: 跳到括号
:%s/bad/good
: 当前行用good替换bad:%s/hi/bye/g
: 整个文件中,用bye替换hi:%s/x/y/gc
: 整个文件中,用y替换x,同时提示:!ls
: 运行ls shell命令:w play.rb
: 保存到play.rb文件:r play.rb
: 打开play.rb文件:e sun.rb
: 重新编辑sun.rb文件,当外部文件改变时,进行重新加载:help <command>
: 查看的帮助文档
注:文末有两个参考链接,如果掌握了基本按键后,就可以通过最后两个链接进行训练和熟悉