Vim 使用心得
从15年开始使用vim,一开始总是用的不顺手,后来发现是因为没有对vim进行定制化。
vim需要个人配置才真正属于自己。我将自己平时使用的一些心得分享出来,如果不对的地方,欢迎指正。
一、基本命令
u 撤销上一步的操作
Ctrl + r 恢复上一步被撤销的操作
p 黏贴
d 剪切
1.1 查找
/
向下查找
?
向上查找
n查找下一个,N查找上一个
*
查找下一个光标所在处的单词,
#
查找上一个光标所在处的单词
1.2 保存退出
:wq
或者按两次Z保存退出
下面是我自定义的Ctrl+s保存退出
" 快速保存退出
inoremap <C-s> <esc>:wq<cr> " save and exit
nnoremap <C-s> :wq<cr>
vnoremap <C-s> <esc>:wq<cr>
二、跳转
2.1、行内跳转
跳转到行首或者行尾部
行首: ^ 或者0 或者Home
行尾: $ 或者 end
这个是vim自带的跳转到行首和行尾的快捷键,不过我真的用不惯,因为手指没有那么长,囧...
所以我定义了自己的快捷键(esc也比较远,所以也定义了快捷键)
" H跳转到行首
noremap H ^
" L跳转到行尾
noremap L $
" jj 替换 Esc
inoremap jj <Esc>
I
是定位到行首切换到插入模式,A
是定位到行末并切换到插入模式。
fa
跳到当前行下一个a
,这个命令非常好用,f,
即跳转到下一个,
fa这个命令这个可以配合;
,比如找到a之后按;可以快速的跳转到下一个a,也就是重复前一个指令,,
重复反向找的操作。
ta
跳到下一个a
前面
大写的意思相反,这个快速定位
w
跳到下一个单词的开始
3w
调到从当前位置第三个单词的开始
e
跳到单词的结束
为了方便我自定义了行首行尾的跳转
2.2、文章跳转
h, j, k, l分别代表向左、下、上、右移动。
12j跳转到当前行的后12行的位置
如同许多vim命令一样,可以在这些键前加一个数字,表示移动的倍数。
[+ctrl+i 跳 转 到函数 、变量和#define
例如,"10j"表示向下移动10行;"10l"表示向右移动10列。
M 跳到屏幕的中间
如CTRL-F 向前一页 CTRL-B 向后一页
Ctrl - d
向下半页 Ctrl - u
向上半页我觉得更实用 这样看文章时就不会跳转出错
2.3、 滚屏
<C-f>
向下滚动一屏幕<C-b>
向上滚动一屏幕<C-u>
向上滚动半屏幕<C-d>
向下滚动半屏幕
2.4、标记移动
标记是Vim中一个很神奇的功能,它能在你需要的地方以某个按键作为标记,你就可以通过这几个按键来进行快速的跳转。
- :marks 标记列表
- m + x 标记当前位置为x
- `x 跳转到标记为x的位置
- 'x 跳转到标记为x的行
-
``
跳转到跳转之前的位置 - ' ' 跳转到跳转之前的行
- `. 跳转到最后修改的位置
- '. 跳转到最后修改的行
三、删除与复制
X 向前删除
x 向后删除
ddyG 全部复制
ggdG 全部删除
g全局替换,c表示需要确认
:%s/FISH/fish/gc
四、visual模式
v
切换到visual模式
V
切换到visual行选中模式
Ctrl+v
切换到块选中模式,可以一次操作多行
四、我的vim配置
请参考:https://github.com/iceqing/linux-template-setting/blob/master/vim/vimrc
系列文章:
https://saul-mirone.github.io/2017/06/27/vim-basic-operation/#2-pao-qi-esc-he-fang-xiang-jian