在Vim中存活下来

大学的时候,有次聊到编辑器的选择,有个学长告诉我们“学VIM吧,什么都能写”,当时兴致冲冲的切到ubuntu系统就进了vim,然后就出不来了。。之后就开始看文档做实验,结果可以在vim中生存下来了。

所谓在Vim中生存下来,你只需要知道下面这几个命令
:w 保存
:q 退出
hjkl分别是上下左右
i 在光标前进入编辑模式
ESC退出编辑模式

打开vim编辑器的方法是在shell中输入vim filename,如果是新建就直接写新文件的名称。
知道这些就可以简单使用Vim了,这也就是我当时能做到的极限,毕竟刚刚接触vim没有鼠标可以用真的是非常难受了。

在Vim中活得很好

工作之后需要用到的地方变多,就有了更多需求,所以需要进一步了解。
(以下加粗的为常用命令)

一般模式、插入模式(INSERT)、命令模式、可视模式(VISUAL)
进入编辑器之后,默认是一般模式。
一般模式:键盘上的字母都是快捷键,不能输入文本,你可以使用快捷键移动光标,翻页,复制粘贴,搜索替换,找地方开始写代码等等。
插入模式:在一般模式下使用iao等命令可以进入插入模式,插入模式下就可以写代码了,hjkl也就不再是移动光标,而是输入对应的字母,编辑完成可以使用ESC回到一般模式。
命令模式:可以使用:进入命令模式,命令模式用于操作当前文件或者配置vim,保存,另存为,退出等。
可视模式:使用v或者V进入可视模式,v进入的是以字符为最小单位的可视模式,V进入的是以行为单位的可视模式,当你选定了一定的段落或者字符之后,可以进行删除复制等操作。

方向移动

hjkl 分别表示←↓↑→,30j 表示光标向下移动30行,请举一反三
<Ctrl>+f 屏幕向下移动一页,相当于 按键
<Ctrl>+b 屏幕向上移动一页,相当于 按键
<Ctrl>+d 屏幕向下移动半页
<Ctrl>+u 屏幕向上移动半页
+ 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行
n<Space> n为数字。光标向后移动 n 行
n<Enter> n为数字。光标向下移动 n 行
0或功能键<Home> 这是数字0:移动到这一行的最前面字符处
$或功能键<End> 移动到这一行的最后面字符处
^ 行首的第一个非空白字符
H 光标移动到这个屏幕的最上方那一行的第一个字符
M 光标移动到这个屏幕的中央那一行的第一个字符
L 光标移动到这个屏幕的最下方那一行的第一个字符
G 移动到这个档案的最后一行
nG n为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行
gg 移动到这个档案的第一行,相当于1G
w 移至下一个单词的词首
nw n为数字。移动n个单词
e 跳至当前或下一个单词的词尾
b 跳至当前或前一个单词的词首

删除 复制 粘贴

x,X 在一行字当中,x 为向后删除一个字符 (相当于 < Del>按键), X 为向前删除一个字符(相当于 亦即是退格键)
nx n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符,10x
dd 删除游标所在的那一整行
ndd n为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行
d1G 删除光标所在到第一行的所有数据
dG 删除光标所在到最后一行的所有数据
d$ 删除游标所在处,到该行的最后一个字符
d0 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
yy 复制游标所在的那一行,复制命令的其他组合用法与删除命令用法一致
p,P p为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行
J 将光标所在行与下一行的数据结合成同一行
c 重复删除多个数据,例如向下删除 10 行,10cj
u 复原前一个动作
<Ctrl>+r 重做上一个动作
. 重复上一次的修改

搜索替换

/keyword 搜索指定关键字
?keywork 从文件末尾开始搜索关键字
n 下一个
N 上一个

切换编辑模式

i,I 进入插入模式(Insert mode):i 为『从目前光标所在处插入』, I 为『在目前所在行的第一个非空格符处开始插入』
a,A 进入插入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始插入』, A 为『从光标所在行的最后一个字符处开始插入』
o,O 进入插入模式(Insert mode):这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处插入新的一行』; O 为在目前光标所在处的上一行插入新的一行!
r,R 进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止

命令

:w 保存
:w filename 另存为
:wq 保存退出
:wq! 强行保存退出
:set ai 自动缩进
:set noai 取消自动缩进
:set nu 显示行号
:set nonu 取消显示行号

配置文件

/etc/vimrc 针对所有用户
~/.vimrc 针对当前用户

最后修改:2018 年 05 月 02 日
如果觉得我的文章对你有用,请随意赞赏