2023年8月3日发(作者:)

Linuxvim指令⼤全在服务器上进⾏⽂本操作时,常⽤vim进⾏编辑,因此总结⼀下vim,使⽤起来更⽅便1 vim的⼏种模式正常模式:可以使⽤快捷键命令,或按:输⼊命令⾏。插⼊模式:可以输⼊⽂本,在正常模式下,按i、a、o等都可以进⼊插⼊模式,按ESC退出插⼊模式可视模式:正常模式下按v可以进⼊可视模式, 在可视模式下,移动光标可以选择⽂本。按V进⼊可视⾏模式, 总是整⾏整⾏的选中。ctrl+v进⼊可视块模式。替换模式:正常模式下,按R进⼊。2 启动vim的⽅法vim -c cmd file: 在打开⽂件前,先执⾏指定的命令;vim -r file: 恢复上次异常退出的⽂件;vim -R file: 以只读的⽅式打开⽂件,但可以强制保存;vim -M file: 以只读的⽅式打开⽂件,不可以强制保存;vim -y num file: 将编辑窗⼝的⼤⼩设为num⾏;vim + file: 从⽂件的末尾开始;vim +num file: 从第num⾏开始;vim +/string file: 打开file,并将光标停留在第⼀个找到的string上。vim –remote file: ⽤已有的vim进程打开指定的⽂件。 如果你不想启⽤多个vim会话,这个很有⽤。但要注意, 如果你⽤vim,会寻找名叫VIM的服务器;如果你已经有⼀个gvim在运⾏了, 你可以⽤gvim –remote file在已有的gvim中打开⽂件。3 ⽂档操作⽅法:e file –关闭当前编辑的⽂件,并开启新的⽂件。 如果对当前⽂件的修改未保存,vi会警告。:e! file –放弃对当前⽂件的修改,编辑新的⽂件。:e+file – 开始新的⽂件,并从⽂件尾开始编辑。:e+n file – 开始新的⽂件,并从第n⾏开始编辑。:enew –编译⼀个未命名的新⽂档。(CTRL-W n):e – 重新加载当前⽂档。:e! – 重新加载当前⽂档,并丢弃已做的改动。:e#或ctrl+^ – 回到刚才编辑的⽂件,很实⽤。:f或ctrl+g – 显⽰⽂档名,是否修改,和光标位置。:f filename – 改变编辑的⽂件名,这时再保存相当于另存为。gf – 打开以光标所在字符串为⽂件名的⽂件。:w – 保存修改。:n1,n2w filename – 选择性保存从某n1⾏到另n2⾏的内容。:wq – 保存并退出。ZZ – 保存并退出。:x – 保存并退出。:q[uit] ——退出当前窗⼝。(CTRL-W q或CTRL-W CTRL-Q):saveas newfilename – 另存为:browse e – 会打开⼀个⽂件浏览器让你选择要编辑的⽂件。 如果是终端中,则会打开netrw的⽂件浏览窗⼝; 如果是gvim,则会打开⼀个图形界⾯的浏览窗⼝。 实际上:browse后可以跟任何编辑⽂档的命令,如sp等。 ⽤browse打开的起始⽬录可以由browsedir来设置::set browsedir=last – ⽤上次访问过的⽬录(默认);:set browsedir=buffer – ⽤当前⽂件所在⽬录;:set browsedir=current – ⽤当前⼯作⽬录;:Sex – ⽔平分割⼀个窗⼝,浏览⽂件系统;:Vex – 垂直分割⼀个窗⼝,浏览⽂件系统;4 光标移动4.1 基本移动以下移动都是在normal模式下。h或退格: 左移⼀个字符;l或空格: 右移⼀个字符;j: 下移⼀⾏;k: 上移⼀⾏;gj: 移动到⼀段内的下⼀⾏;gk: 移动到⼀段内的上⼀⾏;+或Enter: 把光标移⾄下⼀⾏第⼀个⾮空⽩字符。-: 把光标移⾄上⼀⾏第⼀个⾮空⽩字符。w: 前移⼀个单词,光标停在下⼀个单词开头;W: 移动下⼀个单词开头,但忽略⼀些标点;e: 前移⼀个单词,光标停在下⼀个单词末尾;E: 移动到下⼀个单词末尾,如果词尾有标点,则移动到标点;b: 后移⼀个单词,光标停在上⼀个单词开头;B: 移动到上⼀个单词开头,忽略⼀些标点;ge: 后移⼀个单词,光标停在上⼀个单词末尾;gE: 同 ge ,不过‘单词’包含单词相邻的标点。(: 前移1句。): 后移1句。{: 前移1段。}: 后移1段。fc: 把光标移到同⼀⾏的下⼀个c字符处Fc: 把光标移到同⼀⾏的上⼀个c字符处tc: 把光标移到同⼀⾏的下⼀个c字符前Tc: 把光标移到同⼀⾏的上⼀个c字符后;: 配合f & t使⽤,重复⼀次,: 配合f & t使⽤,反向重复⼀次上⾯的操作都可以配合n使⽤,⽐如在正常模式(下⾯会讲到)下输⼊3h, 则光标向左移动3个字符。

0: 移动到⾏⾸。g0: 移到光标所在屏幕⾏⾏⾸。^: 移动到本⾏第⼀个⾮空⽩字符。g^: 同 ^ ,但是移动到当前屏幕⾏第⼀个⾮空字符处。:移动到⾏尾。g:移动到⾏尾。g: 移动光标所在屏幕⾏⾏尾。n|: 把光标移到递n列上。nG: 到⽂件第n⾏。:n 移动到第n⾏。:$ 移动到最后⼀⾏。H: 把光标移到屏幕最顶端⼀⾏。M: 把光标移到屏幕中间⼀⾏。L: 把光标移到屏幕最底端⼀⾏。gg: 到⽂件头部。G: 到⽂件尾部。4.2 翻屏ctrl+f: 下翻⼀屏。ctrl+b: 上翻⼀屏。ctrl+d: 下翻半屏。ctrl+u: 上翻半屏。ctrl+e: 向下滚动⼀⾏。ctrl+y: 向上滚动⼀⾏。n%: 到⽂件n%的位置。zz: 将当前⾏移动到屏幕中央。zt: 将当前⾏移动到屏幕顶端。zb: 将当前⾏移动到屏幕底端。5. 插⼊⽂本5.1 基本插⼊i: 在光标前插⼊;⼀个⼩技巧:按8,再按i,进⼊插⼊模式,输⼊=, 按esc进⼊命令模式,就会出现8个=。 这在插⼊分割线时⾮常有⽤,如30i+就插⼊了36个+组成的分割线。I: 在当前⾏第⼀个⾮空字符前插⼊;gI: 在当前⾏第⼀列插⼊;a: 在光标后插⼊;A: 在当前⾏最后插⼊;o: 在下⾯新建⼀⾏插⼊;O: 在上⾯新建⼀⾏插⼊;:r filename在当前位置插⼊另⼀个⽂件的内容。:[n]r filename在第n⾏插⼊另⼀个⽂件的内容。:r !date 在光标处插⼊当前⽇期与时间。同理,:r !command可以将其它shell命令的输出插⼊当前⽂档。5.2 改写插⼊c[n]w: 改写光标后1(n)个词。c[n]l: 改写光标后n个字母。c[n]h: 改写光标前n个字母。[n]cc: 修改当前[n]⾏。[n]s: 以输⼊的⽂本替代光标之后1(n)个字符,相当于c[n]l。[n]S: 删除指定数⽬的⾏,并以所输⼊⽂本代替之。注意,类似cnw,dnw,ynw的形式同样可以写为ncw,ndw,nyw。6. 剪切复制和寄存器6.1 剪切和复制、粘贴[n]x: 剪切光标右边n个字符,相当于d[n]l。[n]X: 剪切光标左边n个字符,相当于d[n]h。y: 复制在可视模式下选中的⽂本。yy or Y: 复制整⾏⽂本。y[n]w: 复制⼀(n)个词。y[n]l: 复制光标右边1(n)个字符。y[n]h: 复制光标左边1(n)个字符。y or D: 删除(剪切)当前位置到⾏尾的内容。d[n]w: 删除(剪切)1(n)个单词d[n]l: 删除(剪切)光标右边1(n)个字符。d[n]h: 删除(剪切)光标左边1(n)个字符。d0: 删除(剪切)当前位置到⾏⾸的内容[n] dd: 删除(剪切)1(n)⾏。:m,nd 剪切m⾏到n⾏的内容。d1G或dgg: 剪切光标以上的所有⾏。dG: 剪切光标以下的所有⾏。daw和das:剪切⼀个词和剪切⼀个句⼦,即使光标不在词⾸和句⾸也没关系。d/f:这是⼀个⽐较⾼级的组合命令,它将删除当前位置 到下⼀个f之间的内容。p: 在光标之后粘贴。P: 在光标之前粘贴。7 快速编辑7.1 改变⼤⼩写~: 反转光标所在字符的⼤⼩写。可视模式下的U或u:把选中的⽂本变为⼤写或⼩写。gu(U)接范围(如$,或G),可以把从光标当前位置到指定位置之间字母全部 转换成⼩写或⼤写。如ggguG,就是把开头到最后⼀⾏之间的字母全部变为⼩ 写。再如gu5j,把当前⾏和下⾯四⾏全部变成⼩写。7.2 替换(normal模式)r: 替换光标处的字符,同样⽀持汉字。R: 进⼊替换模式,按esc回到正常模式。7.3 撤消与重做(normal模式)[n] u: 取消⼀(n)个改动。:undo 5 – 撤销5个改变。:undolist – 你的撤销历史。ctrl + r: 重做最后的改动。U: 取消当前⾏中所有的改动。:earlier 4m – 回到4分钟前:later 55s – 前进55秒

2023年8月3日发(作者:)

Linuxvim指令⼤全在服务器上进⾏⽂本操作时,常⽤vim进⾏编辑,因此总结⼀下vim,使⽤起来更⽅便1 vim的⼏种模式正常模式:可以使⽤快捷键命令,或按:输⼊命令⾏。插⼊模式:可以输⼊⽂本,在正常模式下,按i、a、o等都可以进⼊插⼊模式,按ESC退出插⼊模式可视模式:正常模式下按v可以进⼊可视模式, 在可视模式下,移动光标可以选择⽂本。按V进⼊可视⾏模式, 总是整⾏整⾏的选中。ctrl+v进⼊可视块模式。替换模式:正常模式下,按R进⼊。2 启动vim的⽅法vim -c cmd file: 在打开⽂件前,先执⾏指定的命令;vim -r file: 恢复上次异常退出的⽂件;vim -R file: 以只读的⽅式打开⽂件,但可以强制保存;vim -M file: 以只读的⽅式打开⽂件,不可以强制保存;vim -y num file: 将编辑窗⼝的⼤⼩设为num⾏;vim + file: 从⽂件的末尾开始;vim +num file: 从第num⾏开始;vim +/string file: 打开file,并将光标停留在第⼀个找到的string上。vim –remote file: ⽤已有的vim进程打开指定的⽂件。 如果你不想启⽤多个vim会话,这个很有⽤。但要注意, 如果你⽤vim,会寻找名叫VIM的服务器;如果你已经有⼀个gvim在运⾏了, 你可以⽤gvim –remote file在已有的gvim中打开⽂件。3 ⽂档操作⽅法:e file –关闭当前编辑的⽂件,并开启新的⽂件。 如果对当前⽂件的修改未保存,vi会警告。:e! file –放弃对当前⽂件的修改,编辑新的⽂件。:e+file – 开始新的⽂件,并从⽂件尾开始编辑。:e+n file – 开始新的⽂件,并从第n⾏开始编辑。:enew –编译⼀个未命名的新⽂档。(CTRL-W n):e – 重新加载当前⽂档。:e! – 重新加载当前⽂档,并丢弃已做的改动。:e#或ctrl+^ – 回到刚才编辑的⽂件,很实⽤。:f或ctrl+g – 显⽰⽂档名,是否修改,和光标位置。:f filename – 改变编辑的⽂件名,这时再保存相当于另存为。gf – 打开以光标所在字符串为⽂件名的⽂件。:w – 保存修改。:n1,n2w filename – 选择性保存从某n1⾏到另n2⾏的内容。:wq – 保存并退出。ZZ – 保存并退出。:x – 保存并退出。:q[uit] ——退出当前窗⼝。(CTRL-W q或CTRL-W CTRL-Q):saveas newfilename – 另存为:browse e – 会打开⼀个⽂件浏览器让你选择要编辑的⽂件。 如果是终端中,则会打开netrw的⽂件浏览窗⼝; 如果是gvim,则会打开⼀个图形界⾯的浏览窗⼝。 实际上:browse后可以跟任何编辑⽂档的命令,如sp等。 ⽤browse打开的起始⽬录可以由browsedir来设置::set browsedir=last – ⽤上次访问过的⽬录(默认);:set browsedir=buffer – ⽤当前⽂件所在⽬录;:set browsedir=current – ⽤当前⼯作⽬录;:Sex – ⽔平分割⼀个窗⼝,浏览⽂件系统;:Vex – 垂直分割⼀个窗⼝,浏览⽂件系统;4 光标移动4.1 基本移动以下移动都是在normal模式下。h或退格: 左移⼀个字符;l或空格: 右移⼀个字符;j: 下移⼀⾏;k: 上移⼀⾏;gj: 移动到⼀段内的下⼀⾏;gk: 移动到⼀段内的上⼀⾏;+或Enter: 把光标移⾄下⼀⾏第⼀个⾮空⽩字符。-: 把光标移⾄上⼀⾏第⼀个⾮空⽩字符。w: 前移⼀个单词,光标停在下⼀个单词开头;W: 移动下⼀个单词开头,但忽略⼀些标点;e: 前移⼀个单词,光标停在下⼀个单词末尾;E: 移动到下⼀个单词末尾,如果词尾有标点,则移动到标点;b: 后移⼀个单词,光标停在上⼀个单词开头;B: 移动到上⼀个单词开头,忽略⼀些标点;ge: 后移⼀个单词,光标停在上⼀个单词末尾;gE: 同 ge ,不过‘单词’包含单词相邻的标点。(: 前移1句。): 后移1句。{: 前移1段。}: 后移1段。fc: 把光标移到同⼀⾏的下⼀个c字符处Fc: 把光标移到同⼀⾏的上⼀个c字符处tc: 把光标移到同⼀⾏的下⼀个c字符前Tc: 把光标移到同⼀⾏的上⼀个c字符后;: 配合f & t使⽤,重复⼀次,: 配合f & t使⽤,反向重复⼀次上⾯的操作都可以配合n使⽤,⽐如在正常模式(下⾯会讲到)下输⼊3h, 则光标向左移动3个字符。

0: 移动到⾏⾸。g0: 移到光标所在屏幕⾏⾏⾸。^: 移动到本⾏第⼀个⾮空⽩字符。g^: 同 ^ ,但是移动到当前屏幕⾏第⼀个⾮空字符处。:移动到⾏尾。g:移动到⾏尾。g: 移动光标所在屏幕⾏⾏尾。n|: 把光标移到递n列上。nG: 到⽂件第n⾏。:n 移动到第n⾏。:$ 移动到最后⼀⾏。H: 把光标移到屏幕最顶端⼀⾏。M: 把光标移到屏幕中间⼀⾏。L: 把光标移到屏幕最底端⼀⾏。gg: 到⽂件头部。G: 到⽂件尾部。4.2 翻屏ctrl+f: 下翻⼀屏。ctrl+b: 上翻⼀屏。ctrl+d: 下翻半屏。ctrl+u: 上翻半屏。ctrl+e: 向下滚动⼀⾏。ctrl+y: 向上滚动⼀⾏。n%: 到⽂件n%的位置。zz: 将当前⾏移动到屏幕中央。zt: 将当前⾏移动到屏幕顶端。zb: 将当前⾏移动到屏幕底端。5. 插⼊⽂本5.1 基本插⼊i: 在光标前插⼊;⼀个⼩技巧:按8,再按i,进⼊插⼊模式,输⼊=, 按esc进⼊命令模式,就会出现8个=。 这在插⼊分割线时⾮常有⽤,如30i+就插⼊了36个+组成的分割线。I: 在当前⾏第⼀个⾮空字符前插⼊;gI: 在当前⾏第⼀列插⼊;a: 在光标后插⼊;A: 在当前⾏最后插⼊;o: 在下⾯新建⼀⾏插⼊;O: 在上⾯新建⼀⾏插⼊;:r filename在当前位置插⼊另⼀个⽂件的内容。:[n]r filename在第n⾏插⼊另⼀个⽂件的内容。:r !date 在光标处插⼊当前⽇期与时间。同理,:r !command可以将其它shell命令的输出插⼊当前⽂档。5.2 改写插⼊c[n]w: 改写光标后1(n)个词。c[n]l: 改写光标后n个字母。c[n]h: 改写光标前n个字母。[n]cc: 修改当前[n]⾏。[n]s: 以输⼊的⽂本替代光标之后1(n)个字符,相当于c[n]l。[n]S: 删除指定数⽬的⾏,并以所输⼊⽂本代替之。注意,类似cnw,dnw,ynw的形式同样可以写为ncw,ndw,nyw。6. 剪切复制和寄存器6.1 剪切和复制、粘贴[n]x: 剪切光标右边n个字符,相当于d[n]l。[n]X: 剪切光标左边n个字符,相当于d[n]h。y: 复制在可视模式下选中的⽂本。yy or Y: 复制整⾏⽂本。y[n]w: 复制⼀(n)个词。y[n]l: 复制光标右边1(n)个字符。y[n]h: 复制光标左边1(n)个字符。y or D: 删除(剪切)当前位置到⾏尾的内容。d[n]w: 删除(剪切)1(n)个单词d[n]l: 删除(剪切)光标右边1(n)个字符。d[n]h: 删除(剪切)光标左边1(n)个字符。d0: 删除(剪切)当前位置到⾏⾸的内容[n] dd: 删除(剪切)1(n)⾏。:m,nd 剪切m⾏到n⾏的内容。d1G或dgg: 剪切光标以上的所有⾏。dG: 剪切光标以下的所有⾏。daw和das:剪切⼀个词和剪切⼀个句⼦,即使光标不在词⾸和句⾸也没关系。d/f:这是⼀个⽐较⾼级的组合命令,它将删除当前位置 到下⼀个f之间的内容。p: 在光标之后粘贴。P: 在光标之前粘贴。7 快速编辑7.1 改变⼤⼩写~: 反转光标所在字符的⼤⼩写。可视模式下的U或u:把选中的⽂本变为⼤写或⼩写。gu(U)接范围(如$,或G),可以把从光标当前位置到指定位置之间字母全部 转换成⼩写或⼤写。如ggguG,就是把开头到最后⼀⾏之间的字母全部变为⼩ 写。再如gu5j,把当前⾏和下⾯四⾏全部变成⼩写。7.2 替换(normal模式)r: 替换光标处的字符,同样⽀持汉字。R: 进⼊替换模式,按esc回到正常模式。7.3 撤消与重做(normal模式)[n] u: 取消⼀(n)个改动。:undo 5 – 撤销5个改变。:undolist – 你的撤销历史。ctrl + r: 重做最后的改动。U: 取消当前⾏中所有的改动。:earlier 4m – 回到4分钟前:later 55s – 前进55秒