下面是我对一些讲述vim技巧的文章的摘录,我觉得这些命令都是很强大的,看看它们就可以明白为什么vi是最强的编辑器(之一)。但我并不认为记住这些命
令就是学会vi,我估计要真正地说会使用vi,必须认真地学习一个vi与正则表达式的相关内容。学会了才能对vi运用自如。路漫漫其修远兮!
. 重复上次编辑命令.
:g/^/exec "s/^/".strpart(line(".")." ", 0, 4)
在行首插入行号
:vim:ft=html:
;: 使用 HTML 语法高亮
:runtime! syntax/2html.vim 转换 txt 成 html, 会按照你的 颜色配置来转
:r !commond
在游标所在处次一行插入外部指令commond执行后的输出内容。
:ggVGg? : 用rot13编码整个文件(晕!)
# 译释:gg到文件首行首字符,V进入Visual-Line模式,G到文件末行首字符,
#
这样就选中了整篇文章,然后g?就是用rot13编码整个文件啦
# 【关于rot13——谁让英文是偶数个字母啊】
# ROT13 是一种简单的编码,它把字母分成前后两组,每组13个,编码和解码
# 的算法相同,仅仅交换字母的这两个部分,即:[a..m] --> [n..z] 和 [n..z]
# --> [a..m] 。 ROT13 用简易的手段使得信件不能直接被识别和阅
# 读,也不会被搜索匹配程序用通常的方法直接找到。经常用于 USENET 中发表一
# 些攻击性或令人不快的言论或有简单保密需要的文章。
# 由于 ROT13 是自逆算法,所以,解码和编码是同一个过程。
:sp fred.txt :
在一个水平分割的窗口中打开文件fred.txt
# 译注:vs fred.txt可以实现垂直分割
# 命令录制 (最佳技巧,ft)
qq #录制到q
.. #输入一系列复杂的指令
q #再次按q停止录制
@q #执行q中存储的指令
:nmap ,f :update<CR>:silent !start
c:\progra~1\intern~1\iexplore.exe
file://%:p
:绑定“,f”,使用iexplore打开当前文件
# 译释:nmap是做一个normal模式下的键盘绑定
# 这里绑定了一个逗号命令 ,f
# :update是写这个文件,与:w不同,它只有当文件被修改了的时候才写
# :silent别让弹出窗口报告执行结果
# !...后面就是执行windows命令了。呵呵,去问bill gates什么意思吧。
:%s/\r//g
: 删除DOS方式的回车^M
gvim -d file1
file2
: vimdiff (比较不同)
:%s/\r//g
;: 删除 DOS 的换行符 ^M
:%s/\r/\r/g
;: 转换 DOS 回车符 ^M 为真正的回车符
:%s=
*$==
;: 删除行尾空白
:%s=
\+$==
;: 同上
:%s#\s*\r\?$##
;: 删除尾部空白和dos换行符
:%s#\s*\r*$##
;: 同上
:%s/^\n\{3}//
;: 删除连续3个空行
:%s/^\n\+/\r/
;: 压缩空行,多个替换为一个
:%s#<[^>]\+>##g
;: 删除html的tag部分
:%s#<\_.\{-1,}>##g
;: 多行删除 html 的tags (非贪婪方式)
;:" 插入DOS换行符
:%s/$/\<C-V><C-M>&/g
;: (that's what you type
:%s/$/\<C-Q><C-M>&/g
;: for Win32) 对于Win32应该这样
:%s/$/\^M&/g
;: 你看到的^M是一个字符
:s/__date__/\=strftime("%c")/
;: 将文章中的__date__替换成当前日期,使用strftime函数
:vmap st "zdi<?= <C-R>z
?><ESC> ;:
加上 <?= ?>
'.
;: 跳回最后编辑的行 (超有用)
!!date
;: 从date获得输入(删除当前行)
;:" 浏览
:e
.
;: 文件浏览器
:Exp(lore)
;: 浏览文件:g/^/exe ".w
".line(".").".txt" :"
将每一行的内容存成一个文件,文件名为 行号.txt 如 1.txt,2.txt 等
:Sex(plore)
;: 分割窗口浏览文件
:browse
e
;: 打开windows 的 ‘选择文件’对
:ls
;: 显示缓冲区
:cd
..
;: 设置当前目录位置
:args
;: 查看当前打开的所有文件
:args
*.php
;: 打开所有 *.php文件
:lcd
%:p:h
;: 改变路径到当前编辑的文件
:autocmd BufEnter * lcd
%:p:h ;:
放入.vimrc自动完成上面的命令
安装在windows下的gvim会把ctrl+v指定为复制,使用得无法使用块选择,把到vim7.2\mswin.vim,把这一行去掉"map
<C-V>
"+gP",使得在一般模式下可以使用ctrl+v进行块选择。
ga
;: 显示当前光标下单个字的ascii,十进制,十六进制……
'.
;: 跳回最后编辑的行 (超有用)
`.
;: 同上,但是定位编辑点
g;
;: 跳转到比较旧的编辑位置(如果有的话) (vim6.3后的新功能)
g,
;: 这个是较心的位置 (同上)
:changes :打出改变表
:h
changelist
;: 查看“改变表跳转”的帮助
<C-O>
;: 依次沿着你的跳转记录向回跳 (从最近的一次开始)
<C-I>
;: 依次沿着你的跳转记录向前跳
:sav!
%<.bak
;: 换一个后缀名保存 (旧方法)
:sball,:sb
;: 把所有的 buffers分割显示在一个窗口中 (超有用)
;:" 折叠:隐藏某些片断,使查看更容易
zf}
;: 使用动作命令折叠一个段落
v}zf
;: 使用可视模式折叠一个段落
zf'a
;: 折叠到一个标记上
zo
;: 打开折叠
zc
;: 重新关闭折叠
;:" 显示"不可见字符"
:set list
:!echo
%:p
;: 显示完整路径和文件名
:!echo
%:p:h
;: 只显示完整路径
:!echo
%:t
;: 只显示文件名
:set guifont=* 出选择字体对话框,
;:" 映射中常使用的表示
<CR>
;: 回车
<ESC>
;: Esc
<LEADER>
;: 右斜杠
<BAR>
;: 管道符号
<BACKSPACE>
;: 退格键
2008-11-04
订阅:
博文评论 (Atom)
没有评论:
留言须知:
0. 你有權保持沉默,但你所說的將作為此BLOG有人訪問的證據。
1. 支持的HTML標籤:<a href="" title=""> <b> <em> <i> <strong>。
2. 留言留名,不然易被无视。(在“评论”中选择“名称/网址”,网址可以不填)。
3. 原則上我不删除留言,除非那則留言侮辱到你。