- mac下从vim中复制内容至系统剪切板
:w ! pbcopy
- 查看vim下设置的变量的值
下面三个前缀用来访问特殊的数值
“$”——访问环境变量;
“&”——访问 Vim 选项;
“@”——访问寄存器。
例如:
:echo $VIM
/usr/share/vim
:echo &tags
./tags,tags,/Users/aaa/workspace/test-laraval/tags
:echo @a
^xx - vim撤销前一次操作,以及恢复撤销
撤销:u
恢复撤销:Ctrl+r - 删除
D或者d$ 删除光标位置到本行结尾
d0 删除光标位置到本行开头
dw 删除到下一个单词开头 de 删除到本单词末尾 dE 删除到本单词末尾包括标点在内 db 删除到前一个单词 dB 删除到前一个单词包括标点在内
- BOM标记,以及16进制模式打开文件
1. 查看文件是否有BOM标记
:set bomb?
2. 去掉BOM标记
:set nobomb
3. 加上BOM标记
:set bomb
4. 以16进制模式打开文件
:%!xxd
5. 将以16进制模式打开的文件返回文本编辑模式
:%!xxd -r - 设置文件编码格式
:set fileencoding = utf-8
- 缩进
参考:http://liuzhijun.iteye.com/blog/1831548
附注:http://liuzhijun.iteye.com/category/270228 这个关于vim的博客系列似乎写的不错,可以学习学习。
" 缩进设置
set autoindent " 回车自动缩进
set shiftwidth=4 "reindent 操作(<<和>>)时缩进的列数(这里的一列相当于一个空格)
set tabstop=4 "一个tab键所占的列数,linux 内核代码建议每个tab占用8列
set softtabstop=4 "敲入tab键时实际占有的列数.
"这里softtabstop的输入效果,和softtabstop的值以及tabstop的值有关:
" 1.softtabstop大于tabstop时,且没有设置expandtab时,例如:softtabstop=12,tabstop=8,那么当输入一个tab时(softtabstop:实际占用的是12列),最后会变成一个tab(tabstop)加4个空格(8+4),输入两个tab(2个softtabstop:24列)会变成3个tab(tabstop),也就是说vim或用tabstop+空格来表示,最终你能看到的缩进的列数一定是softtabstop*按的tab键次数。(ps::set list 可以查看tab符号)
" 2.softtabstop小于tabstop且没有设置expandtab时,如果softtabstop=4,tabstop=8,输入一个tab(softtabstop),会变成4个空格(因为不够用一个tabstop表示),输入两个tab会变成一个tab(8列 >)。
" 3.如果softtabstop等于tabstop,而且expandtab没有设置,softtabstop与tabstop就没什么区别了。
" 4.如果设置的expandtab,输入一个tab,将被展开成softtabstop值个空格,如果softtabstop=4,那么一个tab就会被替换成4个空格。
set expandtab " 将tab转换为空格。(即不设置此命令时tab是^I,而设了之后是4个空格。//这里假定tabstop=4)