VIM 编辑器笔记


     Emacs 说, 我只要一个编辑器,你却给了我一个操作系统。 它是属于黑客的编辑器。我没能力将Emacs 折腾成一个操作系统,那就要一个纯粹的编辑器吧。 

     以下是 VIM 编辑器的常用命令:

     

      插入模式:  就是文本插入, 即最为熟悉的那种可见即可得的编辑状态。 按下 i, a , o, shift+o 均可进入插入模式。 因为这个最易于接受,故将其放在最先。如果你对命令比较生疏,可以先用插入模式适应下,再学习各种命令逐步增强编辑能力。


     “正常”模式 : 按下ESC键后进入“正常”模式,其实一点都不“正常”,更准确地说,应该是“命令控制模式” ,因为在这个模式下你输入命令,然后编辑器作出恰当反应,就像按下 组合控制键一样。 VIM  启动进入时默认是该模式。 以下命令均必须在该模式下才能生效。 键入命令时, VIM 会在编辑器的最下面一行显示你所键入的命令。

  

                  num-cmd-object : VIM命令模式, 表示对对象object 执行命令 cmd 有 num 次。 比如 3j  表示向下移三行。 非常强大!                

 

                   j  移至下一行 ; k 移至上一行; h 前一个字符位置 ; l 后一个字符位置。

                  x  删除光标所在位置的单个字母 ;  dw 删除光标所在位置的单个单词;  d$ 删除从光标所在位置到该行末的全部字符; dd 删除光标所在的整行。

                  p 插入上一次删除的内容。 与 dd 连用, 通常可起到 剪切/粘贴 的作用;  u 撤销上次操作;  

                  r  替换模式,按下r 之后输入的字符将替换光标所在位置的单个字母 ; Shift+r  : 按下 shift+r 之后输入的字符将直接覆盖光标所在的字符,可连续替换。

                

                 cw: 先删除单词,然后进入插入模式。

                    

                ctrl+g 在编辑器最下面显示光标所在的行信息;   num + shift+g 跳转至指定行 num 。     【定位】

                搜索字符串:  /要搜索的字符串;   要继续搜索按 n , 反方向搜索按 shift+n             【搜索/替换】

                替换字符串: :s/oldstr/newstr 替换第一个匹配; :s/oldstr/newstr/ 替换所有匹配; 

                                         :#1,#2s/old/new/g 替换行#1与#2之间的所有匹配 ; :%s 在文本内进行替换

                 在括号(),[],{} 处按  % 可跳转至配对的括号, 按两次回到原括号;

               
                 :q  编辑文件时不保存就退出,会有警告信息;  :w  将内容写入文件,相当于保存。  :wq 保存文件内容并退出。    【文件操作】

                 :w filename  将文件内容写入文件 filename ,相当于另存为; :#1,#2 w filename 将正在编辑的文件的行#1与#2之间的内容写入文件 filename 中;

                :r filename 在光标处插入 filename 的内容  ;  :open filename 打开指定文件 filename

 

               :!外部命令名   : 调用外部命令, 比如 :!ls ;  

                o : 在光标所在行的下面插入一行,并进入插入模式; shift+o : 在光标所在行的上面插入一行并进入插入模式。  

                a : 在光标所在出的下一个位置进入插入模式; A : 在光标所在行的行末进入插入模式。

               :set ic  查找/替换忽略大小写;  :set hls is 高亮显示查找结果;  :set xxx 设置 xxx  选项。


              快速移动:

              num + [jklh] : 比如  10j 向下移动10行; 0 :  移动至行首 ; $ : 移动至行末;

              num + f + 字符: 向后移动到第 num 个指定字符处; 比如光标在行首,要移动到本行最后一个m 处, 只需要键入 4fm 即可。

              num + F + 字符: 向前移动到第 num 个指定字符处。 比如光标在行末,要移动到行首的 m 处,只需要键入 4Fm 即可。

              w : 移到下一单词首; b 回到上一单词首; e 移到下一单词尾; ge 移到上一单词尾。


              代码块缩进:

              ESC [进入普通模式] -> shift + v [进入可视模式] -> j,k 移动光标选择代码块范围 ->  > 右缩进, < 左缩进 

             

             可视模式:  用途之一,就是选择大量文本块,可用于复制/粘贴功能中。

             文本内剪贴/粘贴:  ESC ---> shift+v ---> j,k 移动光标选择文本块 ---> d  (完成剪切功能) --> 光标移动到要插入的位置(不可有其它删除操作)  --- > p

             文本外剪切/粘贴:   ESC ---> shift+v ---> j,k 移动光标选择文本块 ---> w  tmp  (写入文件 tmp) ---> 转到要插入的文件的位置 ---> :r tmp 

           

             VIM 设置:   修改Vim根目录下的配置文件 Vim/_vimrc

# 代码编写

set number
set nobackup
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set showmatch
set ruler

## 解决中文乱码

set encoding=utf-8
set incsearchg=utf-8

set termencoding=utf-8

set fileencoding=chinese

set fileencodings=ucs-bom,utf-8,chinese 

set langmenu=zh_CN.utf-8

source $VIMRUNTIME/delmenu.vim

source $VIMRUNTIME/menu.vim

language messages zh_cn.utf-8 

language messages zh_cn.utf-8  


            小结:

            VIM 编辑器的强大之处,在于其丰富的命令,可以控制编辑器作出各种反应。当然,需要对命令非常熟悉并且能灵活组合运用。 其实也并不像传说中那么困难。如果默认启动模式是插入模式,也许会更易于接受。继续学习中……


 

posted @ 2012-07-12 20:00  琴水玉  阅读(268)  评论(0编辑  收藏  举报