Vim 学习手记(一) --- 基本操作

 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哲思注册吗?现在 注册 !
Will Song

回复 Will Song  2010年01月28日 星期四 18:17

有谁来写emacs的?叫我啊,我一定好好学习...

0条回复

徐继哲

回复 徐继哲  2009年12月29日 星期二 14:26

Emacs党路过, :D

0条回复

暂时没有评论

Zeuux © 2024

京ICP备05028076号