vim快速上手
导语
终端使用者的诸位一定对vim不陌生,作为一个命令行下的文本编辑软件,vim可谓功能强大。然而对很多年轻人(比如之前的时候的我),vim功能强大就强大在他能在终端编辑文本,vim和vi有嘛区别?我不到啊?今天来说一说vim的常用的提高文本编辑效率的快捷键。
安装
使用linux系统自带的软件管理工具即可,比如apt yum之类的。
使用vim建立文件
vim主要分为普通模式和插入模式,普通模式是命令模式,插入模式是编辑模式。
顾名思义,编辑模式是修改文本的内容的,命令模式是进行命令操作的。之前我是憨憨的时候是因为我只知道能进入编辑模式,各种方便的快捷键一概不知,这里我们来安排一哈。
建立文件
$vim hello.c
进入插入模式
打开文件后我们默认在普通模式,按i进入插入模式,最下面会显示– INSERT –
退出并保存
在普通模式下输入:wq保存并退出vim编辑器
使用vim编辑文本
移动光标hjkl
vim在普通模式下移动光标的按键是hjkl,h左 j下 k上 l右
这个移动方式的好处是我们不用把右手进行位移放到方向键上了,看似没啥用,却实际上对体验有所优化。
删除字符 x dd u Ctrl+R
在普通模式下,用x即可在光标向后删除一个字符,用X则是向前删除一个字符。
在普通模式下,用ndd可以将光标所在后n行删除,dd就是删除当前行。dG为删除光标到最后一行的所有数据
恢复删除命令是u,当你删除了本来不想删除的东西,可以摁u取消之前的删除
Ctrl+R是一个撤销,取消在普通模式所做的上一个命令。
复制粘贴 p y
粘贴命令是p,将内存中的字符复制到当前光标的后面。比如你刚才dd了一行,内存里就有了那一行,你再用p命令就可以将那一行粘贴到光标的位置。
y命令(yank)是将指定的字符串复制到内存中,yw命令(yank words)用于复制单词,可以指定复制单词的数量,比如y2w就是赋值两个单词。
查找字符串
就相当于常用的ctrl+f。
可以用/ 也可以用?,/是搜索下一个,?是搜索上一个
n是重复上一个搜索命令,N是反向进行上一个搜索命令。
跳转到某一行g
输入”nG”或者”:n”可以让光标转到第n行
比如跳到第5行,就可以用 “5G” 或者 “:5”
vim的格式设置
设置缩进
对C语言程序设置锁定,可以用cindent选项;如果需要设置下一行的缩进长度可以设置shiftwidth选项。
比如下面的命令实现4个空格的缩进:set cindent shiftwidth=4
这样,当输入一个语句的时候就会自动缩进,在收到’;’'}’的时候会自动取消缩进。这样也可以根据缩进是否正确来判定自己的代码写的是否有问题。
设置tab键的空格数量
vimtab的默认移动距离是8个空格,当需要修改的时候需要设置tabstop::set tabstop=n
设置行号
:set number
使用这条命令后,程序每行代码的头部都会有一个行号的数值。
Vim配置文件 .vimrc
vim启动时会更具~/.vimrc文件配置vi的设置,可以修改.vimrc的数值来定制vim,比如上面提到的shiftwidth、tabstop和number都可以
set shiftwidth=2 |
上面都是抄书的,下面是我个人觉得给劲的。
操作 | 结果 |
---|---|
Ctrl+f | 屏幕上移一页 |
Ctrl+b | 屏幕下移一页 |
Ctrl+d | 屏幕上移半页 |
Ctrl+u | 屏幕下移半页 |
0 | 移动到一行的最前面 |
$ | 移动到一行的最后面 |
:1,$s/word1/word2/g(c)或:%s/word1/word2/g(c) | 从第一行往后将word1替换成word2,如果是gc的话则会提示你是否confirm。 |
(n)yy | 赋值光标往下的n行(yy就是赋值当前一行) |
:w [filename] | 另存为filename |
:r [filename] | 读入filename的数据,相当于write a+ |
:n1,n2 w [filename] | 将n1行到n2行的内容存为filename |