Sunday, August 10, 2008

我的vim tips

update@2008-08-29
12.gvim下的水平滚动条
:set guioptions=b
详细参见
:help guioptions

update@2008-08-28
11. ksh下的补全
按两下Esc

update@2008-08-22
10. 显示当前路径
:pwd
是的,就是这么简单,之前就是不知道

updated@2008-08-15
9. vim的tab浏览
在新标签打开文件C:\vim\deploy.bat
:tabnew C:\vim\deploy.bat
跳转到第n个标签
:{n}gt
还有tabdo, 类似于argsdo
详细见
:help tabdo

update@2008-08-11

8. 文本文件在window和linux上的转换
windows、linux、mac上的换行结束符
dos <CR> <NL>
unix <NL>
mac <CR>

8.1 linux上可以通过工具dos2unix、unix2dox进行转换
8.2 vim通过set fileformate=<dos>|<unix>|<mac>进行设置
8.3 消除^M的方法
:%s/^M//g
linux上输入^M: <C-V>+<C-M>
windows上输入^M: <C-Q>+<C-M>

1. * #
光标移到单词的上面,按*或#就可以向上或向下搜索。这可能最简便、提高效率的快捷键了。
2. =
用等号=对xml、java源代码什么的进行“格式化”调整缩进。
对全文格式化可用
gg=G
部分格式化可用v进入可视模式后选中再=
3. < >
相对Editplus或eclipse选中后用Tab 或 Shift+Tab增加或减少缩进,Vim用<和>显得更直观。
4. 对查找的内容进行替换
对替换的内容没有把握时,对替换的内容先进行查找,确认后,在替换时用<C-R>+/就可以调出之前查找的内容了。如要将fdsa替换成asdf先查找fdsa再替换(<C-R>是Ctrl+R)
/fdsa
:%s@<C-R>+/@asdf@g

同样的,<C-R>+"可以调出复制缓冲区的内容(yank register).。

5. 递归查找
譬如,递归查找C:\vim目录下的C文件中包含hello world的行
:vimgrep /hello world/ C:\vim\**\*.c
**表示递归所有的子目录

打开搜索结果窗口
:copen
在搜索结果中跳来跳去
:cnext
:cprevious

6. 批量处理
将当前目录下的bat文件导入缓存区。
:args *bat

查看完整文件列表
:args
在文件列表中跳来跳去
:next
:previous

把所有asdf地换成fdsa并保存
:argdo %s/\/fdsa/ge | update

把37行移到文件末尾并保存
:argdo execute "normal 37GddGp" | udpate

7. 正则表达式
学习的话可以google那篇经典的《正则表达式之道》.

保持更新。

1 comments:

Unended Quest said...

移到单词上快速搜索 这个很方便 不错