龙 2009年12月29日 星期二 07:12 | 3130次浏览 | 2条评论
对于我这样键盘控来说,Vim真是神器一般的存在。
昨晚找了资料来专门学习,因为出了在 vimtutor 中学过还记得的 h j k l dd x r R i w q 之外就不记得其它命令了 。
一切,从《Vim用户手册中文版70f》开始。(为什么章节号是不连续的??)
首先,先上图 -- Vim Visual Cheat Sheet
常用操作,不怕突然想不起来了
//------------------------ 请叫我分割线 -------------------------------//
勿在浮沙筑高台,从头开始
简单定制 --------------------------------------------------------------------------------------
//打开颜色 :syntax enable
//在 .vimrc 中添加
set number //行号
colorscheme evening //颜色主题 evening
set showcmd //显示输入的命令
//字符编码选择
set fileencodings=utf-8,gb18030,gbk
set termencoding=utf-8
set fileformats=unix
set encoding=prc
文件操作 ----------------------------------------------------------------------------------------
//打开文件 vim path/filename
//保存文件 :w path/filename
//保存并退出 ZZ(双大写)
//另存为 :saveas filname path/filename
//格式化整个文件
gggqG
"gg"会首先定位到第一行, 然后"gq"告诉Vim要格式文本了, "G"移动
操作符跳转到最后一行, 连起来的意思就是格式化整个文件
模式操作
//回到普通模式 Esc
//插入模式 i
//替换模式 R
//Visual模式(选择矩形区域文本) V
移动操作 ---------------------------------------------------------------------------------------
普通模式下:
//上k 下j 左h 右l
//往下4行 4j ,往右6个字符 6l
//前一个字符 Backspace 后一个字符 空格
//前一个单词首b 后一个单词首w
//前一个单词尾ge 后一个单词尾e
//(包含特殊字符的)前一个单词首B 后一个单词首 W
//(包含特殊字符的)前一个单词尾 gE 后一个单词尾 E
//行首 (数字)0 句首 ^(shift+6) 句尾 $
文本编辑操作 --------------------------------------------------------------------------------
//开始输入 i(进入插入模式)
//追加 a(当前字符位置之后开始编辑)
//下方新建一行开始 o ,上方新建一行开始 O
//撤销 u 重做 U
//重复上一次做出的改动 "." , "." 会重复你做出的所有修改, 除了"u"命令CTRL-R和以冒号开头的命令
如
/four<Enter> 找到第一个字符串"four"
cwfive<Esc> 把它改为"five"
n 找到下一个字符串"four"
. 同样改为"five"
n 继续找下一个
. 做同样的修改
//删除当前字符 x ,连续删除4个字符 4x
//删除本行 dd, 删除一个单词 dw , 删除5个单词 d5w, 删除到句尾 d$, 向上删除16行 d16k ,删除到下一个“o”字符为止 dfo
//删除并进入插入模式 c(各种延伸使用同 “d”)
//替换单个字符 在字符上按“r”,然后输入修改的字符, 替换多个字符 R(也就是替换模式)
//粘贴被删除的内容 p
//复制 y(延伸用法同 “d”)
一个有用的文本编辑命令
~ 改变当前光标下字符的大小写, 并将光标移至下一个字符. 这不是一个操作符命令(除非你设置了'tildeop' 选项), 所以你不能让它与一个位移命令搭配使用. 但它可以在Visual模式下改变所有被选中的文本的大小写
Visual 模式 -------------------------------------------------------------------------------
// 按"v"可以进入Visual模式. 移动光标以覆盖你想操纵的文本范围.同时被选中的文本会以高亮显示. 最后键入操作符命令
//想整行整行地操纵文本, 使用"V"进入Visual模式
//想以一个矩形的文本块为对象进行操作, 你需要用CTRL-V进入Visual模式, 此时"o"命令(提示: o 代表other end另一头)会让光标置于被选中文本的另一头, "O"命令会让光标置于被选中文本的 “”“ 矩形 ”“” 的另一对角
跳转 ---------------------------------------------------------------------------------------
//会走之后开始跳吧
//移动到下一个字符 x fx fa fs (移动到 下一个 x,a,s) 向左版 Fx Fa Fs 只到前一位置版 tx ta ts 只到前一位置向左版 Tx Ta Ts
//括号对的另一个 (当光标在括号上)%
//到指定行 5G(第 5 行) 30G(第 30 行) 35%(文档 35% 长度的地方)
//第一行 gg 最后一行 G 当前行置为屏幕正中央 zz(双小写)
//当前屏幕首行 H 当前屏幕正中行 M 当前屏幕尾行 L
//当前位置信息 CTRL-g
//不要担心迷路,Vim 里可以设置路标的
//跳回上一次跳转的位置 ``(就是 1 左边那个按钮)
//跳转到你更早些时间停置光标的位置(提示: O意为older) CTRL-o
//跳回到后来停置光标的更新的位置(提示: I在键盘上位于O前面) CTRL-i
// CTRL-o CTRL-i 类似于 web浏览器的后退前进
//列出关于你曾经跳转过的位置的列表. 最后一个跳转的位置以">"标记 :jumps
//自定义跳转标志 mx ms mb ,在某行按下“ms” ,移动光标到其他地方 后按下“`s”,是不是跳回来了? 标志只能用26个英文单字母
//可以用 :marks 查看设置的标志
下面是 Vim 的默认 标志 设置
' 进行此次跳转之前的起跳点
" 上次编辑该文件时光标最后停留的位置
[ 最后一次修改的起始位置
] 最后一次修改的结束位置
//也可以试试怎么打滚
//向上滚动一行 CTRL-e 向下滚动一行 CTRL-y
//文本向下滚动半屏 CTRL-u 文本向上滚动半屏 CTRL-d
//文本向下滚动整屏 CTRL-F 文本向上滚动整屏 CTRL-B
简单搜索
用 “/string” 就可以在文本中简单的查找 string , 找到后按“n” 跳到下一个匹配字段
你会正则表达式? 恭喜你,Vim 支持正则表达式。Vim + 正则表达式,逆天的存在啊,可以随便想做什么就做什么...(扯远了)
用法:“/” 后加正则表达式
//便捷搜索 把光标定位于某个word上, 然后按下"*"(shift+8) Vim将会取它作用目标字符串进行搜索 反向版 “#”(shift+3)
Zeuux © 2024
京ICP备05028076号
回复 Will Song 2010年01月28日 星期四 18:17