linux | Vim 命令快捷操作

打印 上一主题 下一主题

主题 1600|帖子 1600|积分 4800

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
注:本文为过去的 “vim 使用笔记”

跳转命令

跳转命令



  • #:向前查找光标当前地点单词,并跳转到该单词的上一个出现位置。
  • *:向后查找光标当前地点单词,并跳转到该单词的下一个出现位置。
行内跳转



  • 0:跳转到当前行的行首。 [Home]
  • $:跳转到当前行的行尾。 [End]
  • ^:跳转到当前行的第一个非空字符处。
  • g_:跳转到行尾最后一个非空缺字符。
  • |n:跳转到当前行的第 n 列(比方:|10 跳转到第 10 列)。
文件内跳转



  • gg:跳转到文件第一行的行首。
  • G:跳转到文件最后一行的行首。
  • G$:跳转到文件最后一行的行尾。 [Ctrl + End]
  • :line-number 或 :n:跳转到指定行号的行(比方::100 跳转到第 100 行)。
  • nG:跳转到文件的第 n 行(比方:20G 跳转到文件的第 20 行)。
  • /{pattern}:跳转到第一个与 {pattern} 匹配的位置。
屏幕跳转



  • H:跳转到屏幕的最上方一行的第一个字符。
  • M:跳转到屏幕的中央那一行的第一个字符。
  • L:跳转到屏幕的最下方一行的第一个字符。
  • Ctrl + b:向上滚动一屏。
  • Ctrl + f:向下滚动一屏。
单词跳转



  • b:跳转到前 1 个单词的开头(比方:5b 向前跳转到第 5 个单词的开头)。
  • e:跳转到当前单词的末端。
  • w:跳转到下 1 个单词的开头(比方:5w 向后跳转到第 5 个单词的开头)。
  • ge:向前跳转到当前单词的末端(比方:3ge 向前跳转到第 3 个单词的末端)。
字符跳转



  • f{char}:跳转到当前行下一个字符 {char} 的位置(比方:fa 跳转到下一个字母 a)。
  • F{char}:跳转到当前行上一个字符 {char} 的位置。
  • h 或 ←:向左跳转一个字符(比方:10h 向后跳转 10 个字符)。
  • l 或 →:向右跳转一个字符(比方:10l 向前跳转 10 个字符)。
行间跳转



  • j 或 ↓:向下跳转一行(比方:5j 向下跳转 5 行)。
  • k 或 ↑:向上跳转一行(比方:5k 向上跳转 5 行)。
  • n<Enter>:光标向下跳转 n 行
删除命令

字符删除



  • x:删除当前光标地点位置的字符,并将光标自动向后跳转一个字符(比方:3x 删除光标后的三个字符,3X 删除光标前的三个字符)。
  • dl:同 x,删除光标地点位置的字符(比方:5dl 删除光标后的 5 个字符)。
  • dh:删除光标地点位置的前一个字符。
行删除



  • dd:删除当前行(比方:5dd 向下删除 5 行,共 6 行)。
  • D:删除从光标当前位置不停到该行的末端(包罗光标地点的字符)。
  • d$:删除至行尾。
  • d0:删除至行首。
单词删除



  • dw:删除光标地点位置到下 1 个单词开头之间的内容(不保留空格,比方:5dw 删除连续的 5 个单词)。
  • de:删除从光标位置到当前单词末端的内容(不会删除空格)。
  • dex:删除从光标地点位置到当前单词末端之间的所有字符,包罗当前单词末端的空格。
  • db:删除光标地点单词及其前面的空格。
  • daw:删除光标地点的单词及厥后面的空格。
  • diw:删除光标地点的单词,并保留其前后的空格。
  • bdw:删除光标地点位置到前 1 个单词开头之间的内容,并且不保留空格。
范围删除



  • :3,5d:删除从第 3 行到第 5 行。
  • d1G:删除从当前行到第一行之间的文本。
  • dG:删除到文件尾,也就是删除整个文档的后半部分(包罗光标地点的字符)。
  • dgg:删除到文件首。
  • dj:删除当前行和下一行(比方:5dj 删除当前行及其下面的 5 行,即向下删除 6 行)。
  • dk:删除当前行和上一行(比方:5dk 删除当前行及其上面的 5 行,即向上删除 6 行)。
  • d2w:删除光标后面的两个单词。
  • dX:删除当前单词前面的空格,但不包罗当前单词本身
  • wde:删除从光标位置到下 1 个单词开头的内容,并且保留空格。此中数字可以指定要删除的单词数
其他



  • d{motion}: motion 可以是任何移动光标的命令,比方 dw, d2w, d$ 等.
留意: d 删除的字符存放到 Vim 的剪贴板中,可以使用 p 命令将其粘贴到另一个位置。
复制和粘贴

复制



  • y:复制(默认是复制到"寄存器)。
  • "+y:复制到系统剪贴板(也就是 vim 的 + 寄存器)。
  • yw:复制 1 个单词(比方:y3w 复制 3 个单词)。
  • yy:复制游标地点的那一行(常用)。
  • nyy:n 为数字,复制光标地点的向下 n 行(比方:20yy 则是复制 20 行)。
  • y1G:复制游标地点行到第一行的所有数据。
  • yG:复制游标地点行到最后一行的所有数据。
  • y0:复制光标地点字符到该行行首的所有数据。
  • y$:复制光标地点字符到该行行尾的所有数据。
  • 5bgyw:复制光标地点单词向前 5 个单词
  • 5egyw:复制光标地点单词向后 5 个单词
  • 5b5egyw:复制光标地点单词向前向后 3 个单词
粘贴



  • p:粘贴(默认从"寄存器取出内容粘贴,在光标后)。
  • P:粘贴到光标前。
  • "+p:从系统剪贴板粘贴。
  • 5p:粘贴五份。
插入新行



  • o:在当前行下面插入 1 个新行,并将光标放置到新行的起始位置。
  • O:在当前行上面插入 1 个新行,并将光标放置到新行的起始位置。
插入模式



  • i:在当前光标位置处插入文本。
  • I:在当前行的开头插入文本。
  • a:在当前光标位置后插入文本。
  • A:在当前行的末端插入文本。
  • o:在当前行的下一行插入文本。
  • O:在当前行的上一行插入文本。
取消和重做



  • u:取消,或输入 :undo 命令。
  • Ctrl + r:重做或输入 :redo 命令。
更换和搜索



  • :%s/old/new/g:快速更换文本中所有的匹配项。
  • :%s/old/new/gi:快速更换文本中所有的匹配项,忽略巨细写。
  • :%s/[\\u4e00-\\u9fa5]//g:更换所有中笔墨符。
  • :g/^$/d:删除所有空行。
  • :%s/\\s\\+/ /g:将连续空格更换为单个空格。
  • :g/^\\s*$/d:删除包含空格的空行。
  • :%s/^\\s*\\n//:删除文档中的连续空格,只保留单个空格,并且删除包含空格的空行。
代码块操作

代码块缩进



  • <:代码块左移(减少缩进)。
  • >:代码块右移(增加缩进)。
  • <<:减少选中行的缩进,块状可视模式下使用。
  • >>:增加选中行的缩进,块状可视模式下使用。
代码块排序



  • :sort:按字典次序排序选中的行。
  • :sort!:按逆字典次序排序选中的行。
  • :sort n:按数字次序排序选中的行。
代码块表明



  • I:在当前行的开头插入表明(需要共同可视块模式)。
  • A:在当前行的末端添加表明(需要共同可视块模式)。
  • :%s/^/# /:在每一行的行首插入 “#” 作为表明符号。
代码块格式化



  • =:重新格式化选中的代码块(自动缩进)。
其他命令



  • nohl:取消高亮。
  • :set whichwrap+=<,>:允许光标在行首和行尾跳转到下一行或上一行。
  • :set nofixeol:禁用文件末端自动添加新行。
  • :set mouse=a:启用鼠标支持。
  • :set mousemodel=extend:设置鼠标滚动时光标的移动方式为扩展模式
  • :set number 大概 :set nu:显示行号
  • :set nonumber 大概 :set nonu:不显示行号
文件操作

保存并退出



  • :wq:保存文件并退出编辑器。
  • :x:保存文件并退出编辑器,仅当文件自前次保存以来有修改时。
  • :xit:保存文件并退出编辑器,无论文件是否被修改。
  • :ZZ:保存文件并退出编辑器
仅保存



  • :w:保存更改但不退出 Vim。
  • :w!:欺压保存更改,忽略某些文件类型插件的告诫。
保存到其他文件



  • :w <filename>:将更改保存到指定的文件名中,不退出 Vim。
  • :w! <filename>:欺压将更改保存到指定的文件名中,忽略告诫。
保存所有打开的文件



  • :wqa:保存所有打开的文件并退出 Vim。
取消保存



  • :undo:取消最近的一次保存操作。
设置自动保存



  • :set autowrite:自动保存更改,每次实行命令时自动写入文件。
  • :set noautowrite:取消自动保存。
保存并退出所有打开的标签页



  • :wqa:在有多个标签页的环境下,保存所有更改并退出 Vim。
保存并关闭当前窗口



  • :close:关闭当前窗口
  • :winc:保存当前窗口的更改并关闭窗口,不退出 Vim。
保存并关闭所有窗口



  • :wqa:保存所有更改并关闭所有窗口,退出 Vim。
自定义快捷键



  • :map <C-f> <ageDown>:将 Ctrl+f 映射为 PageDown(向下滚动一页)。
  • :map <C-b> <ageUp>:将 Ctrl+b 映射为 PageUp(向上滚动一页)。
  • :map <C-s> :w<CR>: 将 Ctrl + s 映射为保存。
正则表达式和更换命令

插入特定字符



  • :%s/^/#/:在整个文件中的每一行的行首插入 “#” 字符
  • :1,5s/^/# /:在第 1 行到第 5 行之间的每一行的行首插入 “#” 字符
删除特定字符



  • :%s/^#//:删除整个文件中的每一行的行首的 “#” 字符
  • :1,5s/^# //:删除第 1 行到第 5 行之间的每一行的行首插入的 “#” 字符
插入行首和行尾字符



  • :%s/^/\\/\\/:在每一行的行首插入 “//”
  • :1,5s/^/# /:在第 1 行到第 5 行的行首插入 "# "
删除行首和行尾字符



  • :%s/^\\s\\+//:删除每行行首的空格
  • :%s/\\s\\+$//:删除每行行尾的空格
更换文本



  • :%s/old/new/g:将文件中所有的 “old” 更换为 “new”
  • :%s/old/new/gi:将文件中所有的 “old” 更换为 “new”,忽略巨细写
  • :%s/\\n//g:删除所有的换行符
  • :%s/\\r//g:删除所有的回车符
  • :%s/\\t//g:删除所有的制表符
特定范围更换



  • :<起始行号>,<结束行号>s/^/<插入的字符>/:在特定范围的行上实行插入操作
  • :<起始行号>,<结束行号>s/^<要删除的字符>//:在特定范围的行上实行删除操作
未完待续……

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

渣渣兔

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表