首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

vim躺着中枪闲来无事YY几句解决方法

2013-07-04 
vim躺着中枪闲来无事YY几句vim最近躺着中枪, 不偷不抢居然被说成是传销货了.为了表示它还是坚挺的,华丽的

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

[解决办法]
人没信仰真可怕!力挺楼主!vim躺着中枪闲来无事YY几句解决方法
[解决办法]
写工程我还是习惯用VS,写小段代码习惯用VIM,懒得去配置,各种文本习惯用VIM处理,很方便。
[解决办法]
纯支持楼主,大爱 vim.
[解决办法]


[解决办法]
:%!xxd 使用十六进制显示;
:%!xxd -r 返回文本显示。
[解决办法]
引用:
引用:已经转头VIM门下。写LUA脚本,现在觉得不需要配插件。说实话刚开始还真不习惯。现在开始慢慢得心应手了。弄的现在用其他的编辑器也是习惯性的按esc i :w
现在用IDE的工具,习惯性的:wq

++
[解决办法]
年纪大了  快捷键就会记不住的
不过还是支持下
[解决办法]
引用:
使用vim 他是一种慢慢的感染,会让你觉得unix 的效率化

学习成本也不低啊,vim都能写一本书,可见学习成本有多高。
[解决办法]
支持楼主,真心觉得vim不错
[解决办法]
支持楼主,真心觉得vim不错 ,什么时候也是用用vim
[解决办法]
1) 对配对符的操作
Ctrl+]
选择 ctrl+shift+] 然后复制删除啥的。
2) 行列操作
VS 列操作支持的不咋样,但删除列还是能完成的,选择删除区域的一个角,然后ctrl+shift+鼠标左。就选择块了。

3) 正则表达式使用
基本上支持正则的编辑器,能做的基本上差不多,VS也不例外。

4) 头文件定位
右键直接有操作

5) 让vim代替你的双手
ctrl+H 直接替换

6) 序列的操作与宏的奥妙
VS支持宏,生成有规律的代码很简单,写VBA就是了。

7) VIM 十六进制和文本模式切换 
这个VS默认没这功能,真需要的话可以写扩展。

剩下的插件就没啥可比的了
[解决办法]
支持楼主,习惯就好。
------解决方案--------------------


lz能不能推荐一个好一点的能parse C++的ctags。我公司里架构师鼓吹vs比vim好的第一理由就是vs的F12比vim的Ctrl+]强,我还反驳不了。最关键的就是要比如很常见的Init函数,g+]别给我弄上千个候选给我选,只给我列出来当前对象的Init以及如果是指针的话所有派生类的虚函数重载,这就可以了。
[解决办法]


[解决办法]

[解决办法]
搞得真复杂,我还是用各自的IDE
[解决办法]
顶一个,目前主要使用vs和eclipse。。。
vim还处于初级阶段~vim躺着中枪闲来无事YY几句解决方法
[解决办法]

[解决办法]
学不会, 不就编辑器么, 还不谁想用啥就用啥...

[解决办法]
支持楼主,高技术就的专业!
[解决办法]
vim躺着中枪闲来无事YY几句解决方法
连vim是什么都不知道的飘过~~~
[解决办法]
vim好像也能配置auto-complete-clang
配置后 可以根据语法做语法的前端分析
比ctags要好
vim挺不错的 就是我现在觉得vim快捷键不合我的口味
我还是比较喜欢emacs那样的组合键
很多topcoder还是用vim的
那些过度依赖IDE的也就只能做做边边角角的东西
真的需要拓荒一个新领域 甚至在没有IDE的情况下
vim /emacs 这样的骨灰级editor才能委以重任
[解决办法]
引用:
vim好像也能配置auto-complete-clang
配置后 可以根据语法做语法的前端分析
比ctags要好
vim挺不错的 就是我现在觉得vim快捷键不合我的口味
我还是比较喜欢emacs那样的组合键
很多topcoder还是用vim的
那些过度依赖IDE的也就只能做做边边角角的东西
真的需要拓荒一个新领域 甚至在没有IDE的情况下
vim /ema……

难道有了IDE 核心的工作都是IDE完成了么?
那个新领域还得从头开始啊?就算交叉编译不能用至少传个文件过去编译也没啥问题吧。
[解决办法]
好主意哦。。。
[解决办法]
vim 呀, 顶个

目前还没发现其替代品呢
[解决办法]
这个工具头一次听说,看楼主说的,应该挺好用的。
[解决办法]
vim/emacs-----专业程序员的编辑器.
[解决办法]
貌似没看到块Decrease Indent and Increase Indent的说明,这个应该加上,经常用
[解决办法]
讨论vim等和vs比其实没啥意义,实际和使用环境有关


如果你程序需要在windows系统下运行,那么vs是必须要运行的,至少编译调试等总要用(用nmake命令行的多半很少了),因此写程序的时候也基本就用vs而不会用vim等其他编辑软件
如果你程序不需要在windows系统下运行,大概也很少人会用vs来编辑.cpp或makefile等文件
使用环境根本不同,谁比谁好有啥好讨论的。。。
[解决办法]
学习一下,在用vim,但很多用法都不知道
[解决办法]
[[ 向上到函数开头
]] 向下到函数开头
[] 向上到函数末尾
][ 向下到函数末尾
[解决办法]
尺有所短,寸有所长。
[解决办法]

严格来说我也是不用nmake的了……
不过我想说的是,如果想定制自动化的工作流程,命令行比起gui更加容易些,开发成本相对要低不少,运行效率相对要快一些。
[解决办法]
适合的是最好
[解决办法]
哪个编辑器支持“编辑超过4GB的文本文件”啊?

热点排行