不会vi/vim,看这一篇足矣

今日分享:Don't allow your rituals to become ruts. -- Todd Henry
?

不会vi/vim,看这一篇足矣

文章插图
 
vi/vim 的重要性不言而喻 , 比如登录服务器操作 。那么如何掌握呢?看这一篇足矣 。
1.介绍vi/vim 是 linux 上内置的一款文本编辑器 , 就如同 windows 上的笔记本工具一样 。
要想使用它 , 先要了解它的三种模式:「命令模式」、「输入模式」、「末行模式」(也被称为底线命令模式 Last line mode) 。命令模式可以操作一些快捷键 , 比如滚屏操作 , 定位操作等;输入模式就是编辑模式 , 可以自由的打字输入;末行模式可以输入一些命令 , 来达到预期效果 。
使用 vi/vim 打开一个文件时 , 默认就是「命令模式」;在命令模式下输入 i 时 , 便进入了「输入模式」;在输入模式下按 esc 键时 , 又会返回命令模式 。在命令模式下 , 按 : (也就是按shift + ;)时 , 会看到光标在窗口底部 , 此时进入了「末行模式」 , 在 : 后便可以输入命令 。更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』
?
vi 是老版本文本编辑器 , vim 现在成为了主流 , 他俩命令一样 , 只是 vim 扩展插件丰富 , 支持的功能更多而已 。本文以常用的 vim 为例进行说明 。
?
2.操作打开一个文件:
vim test.txt
?
输入上述命令会在当前目录下寻找并打开 test.txt 文件 , 如果没有 , 则在当前目录下新建一个 test.txt 文件 。
?
2.1 命令模式
?
1.以下内容全为快捷键 , 直接按即可 , 不会有什么显示 。
2.注意区分大小写 。
3.打开文件默认进入的就是命令模式 , 输入模式或者末行模式下按 esc键进入命令模式
?
  1. 「控制光标」:H是左;J 是下;K 是上;L 是右 。
?
可以使用方向键 (←↓↑→)控制 , 但是通常不这么做 , 因为程序员的双手一般都放在字母区域 , 去按方向键 , 再回到字母区域所需时间太长 。使用 hjkl  , 标准打字姿势中右手完全可以操作 , 方便快捷 。
?
  1. 「滚屏操作」:需要与 Ctrl 键配合使用 , 向上滚动半屏是 Ctrl + u , 向下滚动半屏是 Ctrl + d 。当然为了快速操作 , 还有滚动一屏:向上滚动一屏 Ctrl + b  , 向下滚动一屏 Ctrl + f 。
?
【不会vi/vim,看这一篇足矣】为了记忆 , 滚动半屏可以看做是 up/down  , 分别是 u/d;滚动全屏可以看做 back/forword , 分别是 b/f
?
  1. 「移动到行首或行尾」:这个快捷键一定要记忆 , 超级方便 。
0 :它是数字0 。可以快速移动光标到所在行的行首 。
$ :英文输入下 , 按 shift 和数字键 4 即可 。可以快速移动光标到所在行行尾第一个非空字符下 。
^ :英文输入下 , 按 shift 和数字键 6 即可 。可以快速移动光标到所在行 , 「第一个非空字符」处 。因为敲代码时总有缩进 , 当然希望到这一行代码的第一个字母 , 而不是这一行行首的空格了 。
  1. 「其他移动光标的操作」:
G :到文件最后一行 。如果想要到指定的哪一行可以输入行号 , 再输入 G。(注意:是大写的 G)比如到 67 行 , 输入 67 + G
?
到指定行是我最喜欢的功能 。当然需要配合显示行号使用 , 显示行号会在末行模式处讲 。
?
gg :到文件第一行 。
>> :文本向右移动
<< :文本左移
  1. 「删除操作」:
x :删除光标后一个字符
X :(大写)删除光标前一个字符
d :删除键
dd :删除光标所在行 。如果想要删除指定多少行 , 先输入数字 , 再输入 dd即可 , 比如删除往下的 37 行内容(包含光标所在行) , 输入 37 dd。
d0 :删除光标前所有内容
D :删除光标后所有内容


推荐阅读