瑞士军刀VIM-使用笔记

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

前言

----

vi/vim这把瑞士军刀,入门有点难,但越用越好用,博大精深.这里记录了我的使用笔记,备忘.

About VIM

----------

V1.默认字符编码为utf8,打开使用gb2312编码的文件,中文全为乱码,如何恢复正常显示?

输入 edit ++enc=cp936

V2.如何在vim系统中执行命令?

输入 !cmd

V3. 使用vim直接打开并编辑.*gz文件,而无须解压,读取,编辑,再压缩.

压缩文件的支持是通过plugin

vim ls-lrR.txt.gz

V4. 如何Vim支持语法加亮?

一劳永逸的方法,在~/.vimrc中增加如下语句

syntax on

临时性的方法, 输入命令:syntax on

V5. Vim如何在结构文档中快速切换,比如 C语言{ }块之间切换.

输入在{}之间,输入%即可

V6. 如何让Vim记下我的编辑状态,以便下次快速恢复工作?

输入 :mksession file_name_your_session

V7. 如何让Vim告诉你编辑文件的字节数,字数,当前位置信息?

输入 g CTRL_G

V8. 输入help,打开了帮助窗口,如何快速关闭?

输入CTRL-W ,然后再输入CTRL-Q,

或者输入CTRL-W q

V9. 我要每天编辑日志,我不想去输入日期与时间,该怎么办?

现要如这样的日期形式Mon Sep 19 23:19:03 CST 2005,简单,定义

一个快捷键F2,在vim中做这样一个映射

:map <F2> gg:read !date<CR>

V10. 如何使用Vim改变文本文件的编码?

比如,原有1个文档为utf-8编码的,现在要将它改为cp936编码,可用如下指令

:set fileencoding=cp936

然后再保存文件:w

V11. 如何将vim记住我的配置选项(比如默认的编码方式,文件类型等)?

请将你的配置命令写到~/.vimrc配置脚本文件中

V12. 如何查看当前编辑的C/C++源文件所有include文件路径?

输入:checkpath

V13. 如何保存全局的配置选现(对所有用户都可用)?

先输入:version, 查看系统vimrc配置文件的值

再编辑系统vimrc配置文件,加入你想要vim执行的命令

V14. 如何快速复制Buffer中的一行文字?

输入yy先记录到缓冲区, 移动光标到想要粘贴处,按p

V15. 如何利用宏命令,生成数字顺序列表?

1. Create the first list entry, make sure it starts with a number.

2. qa - start recording into buffer 'a'

3. Y - yank the entry

4. p - put a copy of the entry below the first one

5. CTRL-A - increment the number

6. q - stop recording

7. <count>@a - repeat the yank, put and increment <count> times

V16. 如何实现文本的折叠(Fold)?

自动Fold,假设你的文件是C源文件,输入

:set foldmethod=indent

:set foldenable

手动Fold,选中你要折的行,在Normal模式下

输入命令 zf

当Fold创建后,移动光标到Fold所在行

输入 zo, 打开相应的Fold

zc, 关闭相应的Fold

zM, 关闭文件中所有的Fold

zR, 打开文件中所有的Fold

za, 自动打开或关闭相应的Fold

V17. 如何查看当前文件中的字,字符个数?

输入g CTRL-G 即可,所有字节数按UTF-8的形式进行计数.

V18. 如何在Visual模式下快速搜索当前选中的文字?

为了不改变用户使用习惯,我们依然沿用*和#这两键

vnoremap * y/<C-R>"<CR>

vnoremap # y?<C-R>"<CR>

注: <C-R>指令插入命名寄存器的内容

V19. 如何在源代码中不同块/段落间来回跳跃?

输入 { , 前进至上一段落

输入 } , 前进至后一段落

V20. 如何文本中的TAB转化为固定长度的空格?

输入 :set expandtab

输入 :set tabstop=4

输入 :retab

V21. vim中paste剪贴板中的数据如何让它不缩进,保持原格式?

paste时,输入的文本大多会包含换行字符,还有一些特殊字符,vim会自动对文本缩进,并

且自动换行等,为了避免这些智能选项的影响,可以把paste开关打开

输入 :set paste

补充几个:

gg 到文件首

gd 到变量声明

gg=G 全篇自动缩进 , =G 单行缩进

K(shift+k) man

crl+] 函数原型处 crl+t 回 ( ctags )

ctl+p 自动补全( 编辑状态 )

:X 加密保存( 要输入密码 )

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航