vim躺着中枪闲来无事YY几句
vim最近躺着中枪, 不偷不抢居然被说成是传销货了.为了表示它还是坚挺的,华丽的东西咱不争,写几个它平常干的事吧.
美国选举年年宣传,我在想是不是也给一个传销的帽子,纯粹YY,现入正题
例子多来自网络
1) 对配对符的操作
以下命令可以对标点内的内容进行操作。
ci'、ci"、ci(、ci[、ci{、ci< - 分别更改这些配对标点符号中的文本内容
di'、di"、di(或dib、di[、di{或diB、di< - 分别删除这些配对标点符号中的文本内容
yi'、yi"、yi(、yi[、yi{、yi< - 分别复制这些配对标点符号中的文本内容
vi'、vi"、vi(、vi[、vi{、vi< - 分别选中这些配对标点符号中的文本内容
2) 行列操作
行列定位 0 行首 $ 行尾
gg 文首 G文尾
# 删除一列 :%s/\%1c...// :%s/^...// 或者<C-v>选择列后删除
添加一整列
按gg,回到文本开头,按ctrl + v进入块选择模式(windows按ctrl + q);
假设文本有100行,按99j,选择100行,按shift + i,进入插入模式,插入单引号('),按ESC,即完成了第一列单引号的插入
例如,要消除连续的重复行可以这样:
:g/^\(.*\)\n\1$/d
3) 正则表达式使用
删除以空格或tab開頭到結尾的空行
g/^[ |\t]*$/d
\<匹配词首
\>匹配词尾
/^[^\<abc\>] 查找非abc开头的行
\%23l 匹配指定的行。
\%23c 匹配指定的列。
\w 单词字符: [0-9A-Za-z_]
\{-n,m} 匹配 n 至 m 个前面的匹配原。尽可能少
4) 头文件定位
#<C-W>f 切分显示光标所指的文件名,VIM 会在 path 中搜索该文件名,比如常用它打开 #include 语句中的文件
#path也可以设置 :set path+=~/project/utils/include
5) 让vim代替你的双手
.(英文句号) - 简单,快捷
.(英文句号) 用于实现最简单的重复工作。原理上,vim会记住你最近一次“编辑动作”,使用.(英文句号)可以回放之。
用一个例子说明 . 的用法:
假设你需要将当前文件中的所有 teh 替换成 the。正常模式下,你输入 /\<teh\>,回车,光标跳到了第一个最近的“teh” 近的“teh”,然后你按 . ,看,那个teh马上被替换成the了。于是,你重复地按下n和.,直到所有的teh都被替换完。
6) 序列的操作与宏的奥妙
我们有时候会需要生成类似于下面这种数字序列:
5
6
7
...
100
在vim里,要生成这个序列,有很多种方法,其中一种是:
:s/^/\=range(5, 100)
类似地,可以生成步进为2的:
:s/^/\=range(5, 100, 2)
宏的使用很简单,自行 :h 就行。记住@@是重复上一次宏。
举个简单的例子吧,例如,我们有一个包含100行的文件:
1
2
...
100
我们想要将它们变成:
.\img\1.gif
.\img\2.gif
...
.\img\100.gif
首先,我们将光标移到第一行,按qq,进入宏录制,按^,光标跳到了行首,按i,键入.\img\,按esc,按$,光标跳到了行尾,按a,键入.gif,按esc,按q,结束宏录制并回到正常模式。
然后,我们按冒号:,输入 2,100normal @q,回车。
就算你刚睡醒,这个方法依然有效,因为一切都是那么简单直接。
同样的效果,如果我们使用s命令:
:%s/.*/.\\img\\&.gif
假设要生成1至100间的所有奇数,
s命令:
:%s/^/\=range(1,100,2)
:%s/^/\=line('.') * 2 - 1
7) VIM 十六进制和文本模式切换
使用vim打开文件后,使用命
:%!xxd 使用十六进制显示;
:%!xxd -r 返回文本显示。
%在vimComandLine时代表当前文件的路径,xxd是以十六进制显示一个文件,xxd -r>是将十六进制还原为二进制
好东西自然要宣传,咱脸皮厚点,推一些插件吧,欢迎来喷
功能 插件
在.c/.cpp 与.h间快速切换. a.vim
变量或者函数跳转. ctags cscope
输入时提示 neocomplcache
打开某文件时自动插入数据 headerGatesAdd.vim 新建.h文件时自行插入防头重复包含的代码 自个写着玩
注释与取消注释快速切换. The-NERD-Commenter
doxygen风格快速注释 DoxygenToolkit.vim
高亮 丰富的配色方案 配对符()[]"" ''等不匹配时会高亮提示
查找 变量 文件 /xxvar lookupfile ctrlp.vim
查看函数原型 autopreview echofunc.vim
显示最近打开过的文件 mru.vim
丰富的状态栏 vim-powerline
列出当前文件中的所有宏,全局变量, 函数名等 TagList 不过本人更喜欢tagbar
记录增删 就算退出编辑器, 还能还原已经修改过的文件, 方便得复制还原 YankRing.vim
%在配符对如()[]""等间跳转 matchit.vim
写标签语言的利器 surround.vim
其他的插件像玩游戏,画表格等不再一一描述
表述可能有些不清, 如需更多资料可上vim官网查阅
另外再卖下狗肉,摆下自用的vimrc,希望能起个抛砖引玉的作用.
http://blog.csdn.net/zmlovelx/article/details/7227905
[解决办法]
人没信仰真可怕!力挺楼主!
[解决办法]
写工程我还是习惯用VS,写小段代码习惯用VIM,懒得去配置,各种文本习惯用VIM处理,很方便。
[解决办法]
纯支持楼主,大爱 vim.
[解决办法]