下定决心用好vim,摆脱对gedit等IDE的依赖,实现linux下的编程自由!
雄心壮志立于2019-06-18
设置vim可以使用光标进行定位以及上下滚动
vim ~/.vimrc
然后在vimrc中添加 :
:set mouse=a
set number
重新启动vim即可实现光标自由。
查找
1、normal模式下输入 / 或者 ?加需要查找的字符串来进行搜索,两者的区别是前者是从上往下搜索,后者是从下往上搜索;通过 n 或 N 进行上一个或下一个的匹配。
2、另一种较快的方式是让光标停留在想要查找的单词的任意一个字母上面, 然后输入Shift + * ,即可快速选中该单词,并通过 n 或 N 进行上一个或下一个的匹配。
撤销与重做
normal模式下输入 u意思为撤销
normal模式下输入ctrl+r(redo)意思即为重做
移动光标至行首和行尾
1、 需要按行快速移动光标时,可以使用键盘上的编辑键Home,快速将光标移动至当前行的行首。除此之外,也可以在命令模式中使用快捷键"^"(即Shift+6)或0(数字0)。
2、 如果要快速移动光标至当前行的行尾,可以使用编辑键End。也可以在命令模式中使用快捷键"$
“(Shift+4)。与快捷键”^“和0不同,快捷键”$
"前可以加上数字表示移动的行数。例如使用"1$
"表示当前行的行尾,"2$
"表示当前行的下一行的行尾。
按行复制粘贴
1、单行复制:将光标移到复制行 按 'yy’进行复制
2、多行复制: 将光标移到复制首行 按 'nyy’进行复制 n=1.2.3.4
3、粘贴:将光标移到粘贴行 按 'p’进行粘贴
按区域复制粘贴
v:按字符选择。经常使用的模式,也就是Visual模式。
V:按行选择。这在你想拷贝或者移动很多行的文本的时候特别有用。
在可视选择模式下剪切和拷贝
一旦你高亮了选区,你或许想进行一些操作:
d:剪贴选择的内容到剪贴板。
y:拷贝选择的内容到剪贴板。
dd:剪切当前行。
yy:拷贝当前行。
粘贴:粘贴很简单,按 p。
Terminal 与 vim之间的复制粘贴
在Terminal中复制的快捷命令是 ctrl + insert, 粘贴的快捷命令是 shift+ insert;vim在插入模式中,同样支持相同的快捷键。
因为set mouse = a的存在,导致在vim中是无法直接用鼠标选定内容的,此时可以借助于visual模式进行相关内容的选定,然后使用ctrl + insert进行相关内容的复制。
跳到行首行尾
normal模式下gg跳到第一行
shift+g 跳到文件最后一行
46+G 则可以跳到第46行
删除
dd:删除游标所在的一整行(常用)
ndd:n为数字。删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行
d1G:删除光标所在到第一行的所有数据
dG:删除光标所在到最后一行的所有数据
x 删除光标所在处字符(相当于delete)
X 删除光标所在前字符(相当于back space)
文件异常退出
文件异常退出会生成对应的swap文件,在下次打开时候选择r键Restore,然后删除swap文件即可。
插入
i:在光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入(可以另外起一新的行)
s:删除光标所在的字符并开始插入
I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
A:在光标所在你行的行尾开始插入
O:在光标所在行的上面另起一行开始插入
S:删除光标所在行并开始插入
小写的都是针对于字符,大写的都是针对行
Replace
r:替换光标处的字符
R: 替换当前字符及其后的字符,直到按 [ESC]
打开并编辑多个文件
1、打开多个文件:
vim还没有启动的时候:在终端里输入 vim file1 file2 ... filen
便可以打开所有想要打开的文件
vim已经启动的情况下,输入:e file
可以再打开一个文件,并且此时vim里会显示出file文件的内容。
2、同时显示多个文件:
:sp
水平切分窗口
:vsplit
垂直切分窗口
3、在文件之间切换:
:bn
下一个文件
:bN
上一个文件
:ls
列出打开的文件,带编号
:b1~n
切换至第n个文件
对于用(v)split在多个窗格中打开的文件,这种方法只会在当前窗格中切换不同的文件
4、在窗格间切换的方法:
Ctrl+w+h/j/k/l
依次向前后左右切换窗格
Ctrl+ww
依次向后切换到下一个窗格中
大小写转换
1、单个字符的处理
~
:切换光标所在位置的字符的大小写形式,大写转换为小写,小写转换为大写
3~
:将光标位置开始的3个字母改变其大小写
2、文本整体的处理
gu:切换为小写,gU:切换为大写,剩下的就是对这两个命令的限定(限定行字母和单词)等等。
2.1 整篇文章
ggguG:整篇文章转换为小写,gg:文件头,G:文件尾,gu:切换为小写
gggUG:整篇文章切换为大写,gg:文件头,G:文件尾,gU:切换为大写
2.2 只转化某个单词
guw、gue
gUw、gUe
gu5w:转换 5 个单词
gU5w
2.3 转换行
gU0 :从光标所在位置到行首,都变为大写
gU$ :从光标所在位置到行尾,都变为大写
gUG :从光标所在位置到文章最后一个字符,都变为大写
gU1G :从光标所在位置到文章第一个字符,都变为大写