【vim】学习笔记

2017-07-08  本文已影响70人  清水芦苇

按功能划分出命令

光标移动

w移动光标到下一个单词的词首,b移动光标到上一个单词的词首;e移动光标到下一个单词的结尾,ge移动光标到上一个单词的结尾。
^或者0(数字零)光标移至当前行首。(0 - 移动到行首
^ - 移动到行首的非空白符)
$光标移至当前行尾
#j#k向下或向上移动#行(set relativenumber 之后非常管用)
gg光标移动到全文开头,在vim才有效,vi中无效
GG光标移动到全文结尾
G 转到最后一行行首
ctrl uctrl d控制屏幕滚动,同时光标跟着定位走。通过:set scroll=10 可以设定一次滚动的举例。

括号跳转:
% 跳到匹配的括号处,如下所有括号类型:{ } [] ()
[{ 跳到本代码块(由{}界定)的开头
[} 跳到本代码块的结尾

编辑(增删改)

a: 在光标的后面开始插入字符
A 在一行的结尾处开始插入字符
i 在光标处插入字符
I 在一行的开头处开始插入字符
o 在光标所在位置的下一行打开新行插入
O 在光标所在位置的上一行打开新行插入
ea 从当前单词末尾开始插入(非常实用)
dd 剪切当前行:,删除多行:3dd(表示删除从光标位置开始的连续3行)
dw 剪切单词,可以实现清空右侧空白符。
J(大写) 将下一行合并到当前行
r 替换单个字母,注意如果是替换为大写字母,建议用shift加目标字母触发,而不要用 caps lock。一个是从操作角度考虑,还得多余按一下 caps lock 还原操作;另一个是很多仿 vim 编辑器不识别 caps lock 按键
操作括号内内容:
ci'、ci"、ci(、ci[、ci{、ci< 分别更改这些配对标点符号中的文本内容
di'、di"、di(、di[、di{、di< 分别删除这些配对标点符号中的文本内容
yi'、yi"、yi(、yi[、yi{、yi< 分别复制这些配对标点符号中的文本内容
vi'、vi"、vi(、vi[、vi{、vi< 分别选中这些配对标点符号中的文本内容
c本身的意思是改变,即删除并进入插入模式。
cc 清空当前行, 然后进入插入模式
cw 修改单词。修改光标位置到单词结尾处的单词。
caw 修改单词。修改光标所在的整个单词,即所在的整个单词全部删除后进入插入模式。
ct{某个字母} 修改单词。修改光标位置到某个字母之间的单词,只要碰到首字母就返回。

多窗口、多文件编辑

多窗口

(^表示ctrl)
^wv垂直分割窗口(复制一个本窗口,其实是公用一个 buffer)
^wn水平分割出新的未命名窗口
^wr向右或向下方交换窗口,而^wR则和它方向相反
^ww切换窗口,forcus 和 blur 的切换
^wo只保留当前窗口(window only)
:close 关闭当前窗口

多缓冲区文件

:ls 列出所有打开的缓冲区文件(等价于 :buffers
:b {number, expression} 跳转到指定缓冲区
:bd 关闭当前的单个缓冲区文件(注意关闭窗口不会关闭缓冲区文件)
ctrl+6 切换到下一个文件(必须事先打开过其他文件才可以切换)

多页签

:tabc 关闭当前页签
gt 切换页签(vim 命令模式)

按不同模式划分出的命令

命令行模式(Command-line mode)

主要是对文件整体进行的操作,包括设置,查找
:tab 文件路径 同时编辑多个文件 gt 进行切换不同Tab键
命令行模式下取到从第几行到第几行.表示当前行 ,1,.表示从第一行到当前行 ,比如:1,.d就同样表示删除所有
echo $VIM(注意大小写)显示全局.vimrc的位置
:help {命令}必要时刻去求助 help
:map 查看当前键盘映射有哪些

插入模式(Insert mode)

移动光标:原生的是上下左右键,可以映射配置成ctrl键控制

inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>

命令模式(也称普通模式)(Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段
yy复制当前行。经常与p键连用,用作复制粘贴
yw复制单词。
p粘贴。p表示粘贴别的东西进入vim
u撤销
ctrl+r重做(注意不是command)
ZZ(注意是大写) 保存并退出vim
>><<单行缩进(即使光标在行中间位置也可以)
J 合并两行
. 重复上一次命令

可视模式(Visual mode)

用途:选择文件的一部分内容,以便作比如删除,复制等工作
o切换可视模式的选中端点
复制选中区域: y

选择模式(Select mode)

gh进入选择模式,然后移动光标开始选中。当再按下字符时可直接进行替换。

命令模式→可视模式
v一个字符一个字符的选择
V一整行一整行的选择
ctrl+v列选取模式,可以选取竖行文本

其他综合功能划分出的命令


其他

vim不支持在command按键上绑定快捷键
操作系统差异。windows系统下用gvim命令,linux系统下用vim命令。

插件

emmet-vim插件
<c-y>,来触发标签扩展,也可以自制 snippet 看链接,具体没研究过。

nerdtree插件——file drawer
深入使用 nerdtree(好多快捷键需要进一步学习)

vim-autoformat插件
:Autoformat自动格式化,目前针对 html

[ctrlp] fuzzy file finder (尚未使用)
[fugitive] Git Tool。有一些 Git 的高级用法,比如迅速切换各个版本的 commit 代码,一个按键多次还原代码。比如能看到各个行代码是谁提交的。

Vim 寄存器

vim中的配置项

vim的set relativenumberset number有冲突部分,set number必须是在set relativenumber之后做。

参考资料

总有你要的编程书单(GitHub)https://juejin.im/entry/5920f4f0a0bb9f005f4d9535
vim插件 http://vimawesome.com/
[vim 切换页签快捷键(还没完全应用成功)]https://www.liurongxing.com/vim-tab-shortcut.html
方方老师的配置:https://github.com/FrankFang/dot-files/blob/master/vimrc

边角知识学习

y 代表从缓冲区拉至寄存器
.vimrc 设置缩进之道

上一篇下一篇

猜你喜欢

热点阅读