学习 Vi和Vim 高级篇

现在用Vim也能进行快速的编辑和定位,不过过段时间还是会忘记。这里把自己的笔记mark一下,分享一下。(持续更新)

 

0. 共有的操作

  • 在命令行 前 加上一个数字N,代表将这个命令执行N

1. 保存

  • 当编辑一个文件但在保存的时候被告知没有权限,这时又不想把编辑的内容抛弃掉,则可以 w newfile 将内容保存到一个当前用户拥有权限的文件中去。注意是文件,不是目录。
  • wq和ZZ 表示保存并退出

2. 编辑模式移动光标

  • h、j、k、l 分别是 左、下、上、右 移动光标
  • w 和 b 分别代表向 前、后 移动一个单词
  • 0和$ 分别是移动到 行首和行尾,gg 和 G 分别代表移到 文件的最前、后的位置。注:这可以跟很多其他的命令结合使用,像d、x等。 如 dG,就是从该位置删除到文件的末尾。但是指定数字的G,如44G,是将光标移动到第44行的行首。
  • `` 是将光标返回上一个编辑之前的位置,中间若有编辑模式,则会回到当前的位置。
  • ctrl+f 和 ctrl + b 表示向前、后移动一个屏幕
  • H M L 跳到屏幕的第一行、中间一行和最后一行

3. 修改内容

  • i a o c d x y p 分别代表

i - 当前位置插入 (I 在行前插入)

a - 当前位置后一个字符添加 (A在行尾插入)

o - 本行的下一行新建一行插入 (O在上行插入)

s - 删除字符并插入 (S,cc删除整行并插入)

c - 修改(删除并插入,要指定删除的内容,比如w,代表一个单词,l代表一个字母) (C删除光标之后到行尾的内容并插入)

d - 删除(d是需要指定内容,跟c一样) (D删除光标至行尾,dd删除整行)

x - 删除一个字符 (X 删除光标之前的一个字符)

y - 复制(y是需要指定内容,跟c一样) (Y,yy,复制一行)

p - 粘贴。(p可以将d、x、y操作的内容进行粘贴。 )

  • r 表示将r后面紧跟着的字符代替光标后面的字符。 如Word要将大写的W修改为小写的w,则可将光标停留在W的地方,然后rw即可修改。
  • ~ 表示将字符的大小写颠倒,即将小写转换为大写,大写转换为小写
  • . 表示重复做之前的操作
  • u 表示撤销之前的操作
  • J 合并下一行到本行

4. 搜索

/和? 分别是 向下搜索和向上搜索。在搜索之后,n是同样的方向继续搜索,N 是相反的方向继续搜索

f和F 是在本行中搜索,如fw和FW 分别表示搜索本行中,自光标处下/上一个w的位置。

5. 打开文件

  • vim +n file                                 在第N行打开
  • vim + file                                   在最后一行打开
  • vim + /pattern file                      在第一个出现pattern的地方打开, 比如 vi +/screen, vi + /you\ make,等等

    (这个在你编辑到一半的时候却必须离开时很有用。做个自己的标记,如RRR或者4444,然后就可以定位到这里)

  • vimdiff oldfile newfile                比较两者之间的区别。vimdiff -o oldfile newfile   水平方式打开区别比较

6. 全局命令:

s 替换,g 全局
:s/old/new/                                                     会将当前行中的new替换old
:50,100s/old/new/g                                         50-100行替换
:%s/old/new/g   等价于  :1,$s/old/new/g            全文替换
:%s/old/new/gc                                              要替换则需要输入y并 Enter,不替换则直接Enter。类似于word中的查找替换
(注:<> 表示完整的单词的开始和结束位置,比如:%s/\<child\>/children/g 会将所有的完整的child修改为children,而不修改类似childish等不是完整的child的单词地方)

7. 其他

  • 单词缩写。如:ab abbr phrase。如:ab hw hello world,则在输入hw时,再按非字母案件(空格,逗号或者回车等),hw 会被 hello world代替
    • n与.的巧妙结合使用心得:
       
      n重复上一次搜索 .重复上一次命令
      /that                     cwthose                     n                n                     .

  以上操作:搜索that,将搜索到的第一个that改为those,然后搜索了一处,没有修改,然后继续搜索,搜索到一处并进行了修改(即全文搜索,然后替换操作)

  • ~/.vimrc  文件关联到vim编辑的时候的操作和显示,以下是简单的内容并注释。

set nocompatible                 #去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
set nummber                      #显示行号
filetype on                          #检测文件的类型
set history=1000                #记录历史的行数
set background=dark          #背景使用黑色
syntax on                          #语法高亮度显示
set autoindent                    #vim使用自动对起,也就是把当前行的对起格式应用到下一行
set smartindent                  #依据上面的对起格式,智能的选择对起方式,对于类似C语言编写很有用
set tabstop=4                    #设置tab键为4个空格
set shift                             #设置当行之间交错时使用4个空格
set showmatch                   #设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号

  • 在编辑的时候如果想用bash命令,则只需输入 :! ,然后即可输入命令,如ls, pwd等等
posted @ 2012-07-20 20:38  hanyuanbo  阅读(328)  评论(0编辑  收藏  举报