Linux VI/VIM 10 条高频命令

引言
Linux 自带的 vi/vim 编辑器好比 Windows 的文本编辑器,但其功能可比 windows 的文本编辑器强大得多。但 vi/vim 入门难度不小,一是使用方式和普通文本编辑器不同,习惯了 windows 操作的童靴一开始会觉得很别扭,二是 vi/vim 的命令非常多,用法也很灵活,所以,更熟练掌握 vi/vim 绝非易事,几乎可以用年为单位。
其实,如果你不是 vi/vim 的狂热者,只是为了满足日常工作需要,那么掌握一些高频的 vi/vim 命令及用法即可,没必要去记忆大量的命令。其实,vi/vim 的命令不是靠大脑记忆,而是肌肉记忆,什么意思呢,就是熟能生巧,没什么奥妙可言。
以下总结出 10 条 日常工作中 Linux vi/vim 使用非常频繁的命令和使用技巧,希望能够对各位童鞋有所帮助。
vi/vim 10 条高频命令

  1. 删除命令
    工作中一般用 vi/vim 编写配置文件,经常会删除一些配置,当然在插入模式下可以通过光标一个字符一个字符的删除,如果删除内容比较少到还好,内容太多效率就太低了。vi/vim 提供了专门的删除命令,可以满足各种删除需要。
    按 Esc 按键将 vi/vim 切换到命令模式
    • 在光标所在行键盘输入 dd 命令,可以直接删除该行(删一行)
    • 在光标所在行键盘输入 3dd 命令,可以从当前行向下删除 3 行(删多行)
    • 在光标所在行键盘输入 dG 命令,可以删除光标所在行及其下所有行
    按冒号 : 按键将 vi/vim 切换到编辑模式
    • 如果想要删除所有内容,可以先输入 gg 命令回到首行, 然后输入 .,$d 表示从当前行到末行全部删除
  2. 撤销命令
    万一删错了,你不会再重新写一遍吧,就算重写你也未必记得住删掉的内容,这时可以撤销删除的操作,恢复删除前的状态
    按 Esc 按键将 vi/vim 切换到命令模式
    • 键盘输入 u 命令就可以撤销最近一次的操作,可以使用多次来恢复原有的操作
    • 键盘输入 ctrl + r 命令可以恢复对使用 u 命令的操作,意思就是如果你撤销太多了,可以用这个命令来取消撤销
    也就是说 u 命令和 ctrl + r 是一对相反的命令,如果执行一次 u 命令,又执行一次 ctrl + r 命令,就好比你退一步后又前进一步,等于啥也没有干,原地不动。
  3. 复制/粘贴命令
    想必 windows 的 ctrl+c/v 是程序员每天使用最频繁的快捷键了, 但是在 vi/vim 中这对快捷键可就不管用了。
    按 Esc 按键将 vi/vim 切换到命令模式
    • 键盘输入 yy 命令就是复制光标所在行的内容到 vi/vim 的缓冲区(相当于 windows 的剪贴板),然后输入 p 命令就可以将复制内容粘贴到光标的下一行。如果你想黏贴到光标的上一行,那么就是输入大写 P 命令即可。(复制/粘贴一行)
    • 键盘输入 3yy 命令就是复制光标所在行以及往下 2 行内容(复制/粘贴多行)
    • 键盘输入 y^ 命令就是复制光标所在行到行首之间的内容
    • 键盘输入 y$ 命令就是复制光标所在行到行尾之间的内容
    除了复制/粘贴命令,应该还有剪切才对呀,那 vi/vim 中如何剪切呢? 很简单,就是 dd 命令先删除一行,然后 p 命令就会将删除的内容粘贴在光标的下一行,这就是剪切了呀。
  4. 查找/替换命令
    工作中经常遇到想要修改某个配置项,但是配置文件很大,如果一行一行找,恐怕你受得了,你的眼睛也受不了,这时你需要快速查找命令,帮你快速找到想要修改的配置项。
    另外,如果遇到配置文件中有很多地方需要统一修改,那么一个个修改就太麻烦了,这时你需要查找/替换命令来一次搞定。
    按冒号 : 按键将 vi/vim 切换到编辑模式
    • 键盘输入 /hello,表示自上而下查找 hello 这个字符串,找到后光标会停留在该行,多次输入会按照自上而下的顺序继续查找有 hello 字符串的行(也可以键盘输入 n 命令表示 next 定位到下一个)
    • 键盘输入 ?hello,表示自下而上查找 hello 这个字符串,找到后光标会停留在该行,多次输入会按照自下而上的顺序继续查找有 hello 字符串的行(也可以键盘输入 n 命令表示 next 定位到下一个)
    • 键盘输入 s/old/new 表示用 new 字符串去替换光标所在行中首次出现的 old 字符串(替换一行一个字符串)
    • 键盘输入 s/old/new/g 表示用 new 字符串去替换光标所在行中所有出现的 old 字符串(替换一行所有字符串)
    • 键盘输入 %s/old/new/g 表示用 new 字符串去替换文件中所有出现的 old 字符串(替换所有字符串)
  5. 文件设置行号
    工作中经常需要查看文件,给文件设置行号可以方便文件的查看和修改
    按冒号 : 按键将 vi/vim 切换到编辑模式
    • 键盘输入 set nu 可以给文件设置行号
    • 键盘输入 set nonu 可以取消文件行号
  6. 光标回到行首/行尾
    工作中经常需要在配置文件后添加一些内容,比如经常要在 /etc/profile 文件最后添加环境变量,如果能够快速定位到文件最后一行,那将是一件令人愉快的事情。
    有两种方式可以实现光标回到行首/行尾,如下:
    方式一:按 Esc 按键将 vi/vim 切换到命令模式(推荐)
    • 键盘输入 gg 命令,光标定位回到行首
    • 键盘输入 G 命令,光标定位回到行尾
    方式二:按冒号 : 按键将 vi/vim 切换到编辑模式
    • 输入数字 0 然后按回车键,光标自动回到行首(定位行首)
    • 输入字符 $ 然后按回车键,光标自动回到行尾(定位行尾)
  7. 翻页(屏)
    如果浏览的文件过大,这时候就需要用到翻页命令了
    按 Esc 按键将 vi/vim 切换到命令模式
    • 键盘输入 ctrl + f 命令表示向下翻一页(屏)
    • 键盘输入 ctrl + b 命令表示向上翻一页(屏)
    • 键盘输入 ctrl + d 命令表示向下翻半页(屏)
    • 键盘输入 ctrl + u 命令表示向上翻半页(屏)
    • 键盘输入 ctrl + e 命令表示向下滑动屏幕
    • 键盘输入 ctrl + y 命令表示向上滑动屏幕
  8. 插入执行外部命令的结果
    工作中我们经常会修改 /etc/profile 文件,而改得最多的就是添加某个软件的安装路径,比如 hadoop。而一般的做法就是先查找 hadoop 的安装路径,然后复制到剪贴板上,再打开 profile 文件定位到行尾添加配置。
    其实,以上步骤可以在 vi/vim 中一步搞定,因为在 vi/vim 中也可以执行 Linux 的命令。
    按冒号 : 按键将 vi/vim 切换到编辑模式
    • 输入 !pwd 就可以执行 Linux 的 pwd 命令返回当前目录,输入 !hostname 就可以获得主机名。很快你就会发现,命令显示的返回结果并不会直接插入到文件中(执行外部命令)
    • 输入 r!pwd 就可以将命令的返回结果插入到当前光标位置(插入外部命令执行结果)
    掌握了这个用法,写配置文件就会更方便快捷啦。
  9. 多文件操作
    工作中可能你需要操作多个配置文件,一般的做法是修改完一个文件,然后再打开下一个。但是,如果遇到多个配置文件之间可能需要相互切换,而 vi/vim 正好支持在一个窗口中打开多个文件。
    [root@hdp-01 ~]# vi file1 file2 file3
    这样就可以一次性打开三个文件,默认当前是显示第一个文件
    按冒号 : 按键将 vi/vim 切换到编辑模式
    • 输入 n 可以切换到下一个文件
    • 输入 N 可以切换到上一个文件
    通过 n/N 就可以实现上下文件的任意切换啦。
    如果我想在一个屏幕上同时显示多个文件呢,如下:
    [root@hdp-01 ~]# vi -o file1 file2 file3
    打开文件加一个参数 -o 就搞定了哈,然后可以使用 ctrl + w 然后按上下键在上下窗口间切换
  10. 导入 shell 命令执行结果
    工作中经常修改配置文件,可能需要添加一些 shell 命令执行结果,如下:
    eg::r! hostname
  11. 版本选择
    “工欲善其事,必先利其器”。在 Vi/Vim 版本的选择上,原则是“能用 Vim 就不要使用 Vi;能用最新版就不要守着旧版本”。
    Vim 提供的功能和特性要比 Vi 多得多,如语法加亮着色功能等。就使用效果及效率来说,编辑同样的文件,使用 Vim 更胜一筹;就版本来说,新版的往往会修复旧版的一些缺陷及不足。
    这就要求我们在可能的情况下一定要使用最新版的 Vim,如下方式即可查看版本号
    [root@hdp-01 ~]# vi
    [root@hdp-01 ~]# vim
posted @ 2021-11-01 17:53  追こするれい的人  阅读(123)  评论(0编辑  收藏  举报