vim小技巧
快速插入时间
把下面行追加到 ~/.vimrc ,在vim的插入模式输入 xtime 即可
1 | iab xtime <c-r>=strftime("%Y-%m-%d %H:%M:%S")<cr> |
复制/剪切/删除
print("Hi, this is a 'word'!")
- 拷贝
word:光标移到o,yiw(举一反三:viw,diw,ciw)或者yi' - 拷贝
'word':光标移到o,ya'(举一反三:va',da',ca') - 拷贝
Hi, this is a 'word'!:光标移到o,yi"(举一反三:vi",di",ci") - 拷贝
"Hi, this is a 'word'!":光标移到o,ya"(举一反三:va",da",ca")
vim寄存器
查看vim常用寄存器的保存的内容:registers
a-z每个字母对应一个寄存器,查看寄存器a对应的值:reg a,查看寄存器b对应的值:reg a
normal模式下粘贴寄存器a的内容"ap,insert模式下粘贴寄存器a的内容Ctrl+r a
print("Hi, this is a 'word'!")
- 拷贝
word进寄存器a:光标移到o,"a(选择寄存器a),yiw(拷贝单词) - 拷贝
this进寄存器b:光标移到h,"b(选择寄存器b),yiw(拷贝单词) - 查看
寄存器a保存的内容::reg a - 查看
寄存器b保存的内容::reg b - 粘贴
word(即寄存器a的内容):光标移到粘贴位置,"a(选择寄存器a),p(粘贴) - 粘贴
this(即寄存器b的内容):光标移到粘贴位置,"b(选择寄存器b),p(粘贴)
当我们不选择寄存器直接使用y或d操作时,被操作的内容会被拷贝或者剪切到""(无名寄存器)中
"%:内容是当前文件名,一般写文件注释头会用到
".:上次插入的文本
"+:系统剪切板,查看vim是否支持使用系统剪切板:echo has('clipboard'),输出1表示支持
- 在别的程序(如浏览器网页)用鼠标选择内容,
Ctrl+c(拷贝内容到系统剪切板),回到vim用"+(选择系统剪切板),p(粘贴系统剪切板的内容) "+(选择系统剪切板),yy(拷贝一行进入系统剪切板),可以在别的编辑器或者程序(如浏览器搜索框)里用Ctrl+v粘贴- vim拷贝默认放入
""(无名寄存器),如果想用"+(系统剪切板)取代""(无名寄存器),需要:set clipboard^=unnamed,unnamedplus
粘贴网上拷贝的代码出现缩进对齐错乱
当vim :set autoindent 之后,在insert模式下用Ctrl+Shift+v粘贴网上拷贝的代码会出现缩进对齐错乱
- 方法1.
:set paste,i(进入插入模式),Ctrl+Shift+v(粘贴),:set nopaste - 方法2.
"+(选择系统剪切板),p(粘贴) - 方法3.
:set clipboard^=unnamed,unnamedplus(使用系统剪切板取代无名寄存器),p(粘贴)