代码改变世界

Linux文本编辑器之Vim/Vi

2013-08-28 19:23  hduhans  阅读(349)  评论(0)    收藏  举报

  引言:Vim是从vi发展出来的一个文本编辑器,是linux下默认自带的一款功能强大的文本编辑器。windows下gVim是vim的图形化形式。

 

一、vim工作模式。vim一共有三种工作模式,分别为命令模式、插入模式和编辑模式。

二、vim常用命令。

(一) 插入命令。

(二) 定位命令

    

(三) 删除命令

(四) 复制和剪切命令

(五) 搜索、替换和取消命令

注:1) 搜索字符串时,命令 :set ic 可忽略大小写,取消忽略命令 :set noic

  2) 搜索字符串结果中,按n可跳至下一个搜索结果,按N可跳至上一个搜索结果

  3) 替换字符串时,g默认替换不提示,如需替换前增加提醒,使用c

(六) 其他一些实用的命令

1、Vi中导入文件,:r 命令。可将相应的文件内容拷贝至当前文件。

   语法:1) :r 文件名  2) :r !命令

   范例:1) :r /home/hduhans/myfile --将文件/home/hduhans/myfile内容拷贝至当前编辑环境

      2) :r !ls -l /    --将命令 ls -l  / (查看根目录文件信息)结果内容拷贝至当前编辑环境

注:范例2是:r和:!命令的高级结合

2、Vi中执行命令,:! 命令。可在vi编辑环境中临时执行命令,执行完毕按Enter可继续之前的vi编辑状态。

   语法:  :! 命令

   范例:  :! ls -l /home   --查看/home文件夹详细信息

   :2!pwd 将当前命令执行输出到第2行

   :r!pwd 将当前命令执行输出到光标所在的下一行

3、定义快捷键,:map 命令。可在vi中自定义快捷键,方便操作。

   语法:1) :map 快捷键 快捷键执行动作   --定义快捷键

      2) :unmap 快捷键   --取消快捷键

   范例:1) :map ^P 0i#<ESC>   --快速添加注释#,快捷键Ctrl+P,执行动作顺序:①0命令光标移动至行首 ②i命令进入编辑模式 ③输入字符# ④输入<ESC>退出插入模式。

      2) :map ^B 0x   --快速移除注释#,快捷键Ctrl+B,执行动作顺序:①0命令光标移动至行首 ②x命令删除当前字符

      3) :unmap ^B   --移除快捷键Ctrl+B

注:定义快捷键时^P按键为Ctrl+V+P

4、连续行注释,快速对连续行进行注释。

   语法:1) :n1,n2s/^/要注释的字符/g     --此处^表示行首

   范例:1) :10,20s/^/#/g   --10行至20行批量添加注释#

      2) :10,20s/^/\/\//g   --10行至20行批量添加注释//

      3) :10,20s/^#//g   --10行至20行批量取消首字目#注释

5、自动替换,:ab 命令。在编辑时,预先设定将某些特定字符串替换为指定字符串。

   语法:1) :ab 被替换字符串 替换后字符串   --预先设定替换信息

      2) :unab 被替换字符串   --取消替换设定

   范例:1) :ab mymail hanganglin@126.com   --将mymail字符串指定替换为字符串hanganglin@126.com,当编辑模式下输入mymail,回车后会执行自动替换。

      2) :unab mymail   --取消mymail的替换设定

6、Vi默认设置,上述的快捷键及替换设置等默认只对本次 Vi 编辑有效,如需对每次编辑有效,需进行默认设置(默认设置文件名位.vimrc)。

   管理员root之Vi默认设置文件路径:/root/.vimrc

   用户Vi默认设置文件路径:/home/用户名/.vimrc    --如用户hduhans的Vi默认设置文件路径为/home/hduhans/.vimrc

   在相应路径下编辑保存.vimrc文件。.vimrc文件内容例:

  set nu

  map ^P 0i#<ESC>

注:此处每行命令冒号:可加可不加,注释"。

7、退出,:wq命令。w-write,q-quit。

   常见命令:1) :wq  --保存退出  2) :wq!  --强制保存退出(当前用户为管理员或文件所属者才被允许使用)  3) :w  --执行保存  4) :q   --退出不保存

   此外,Shift+ZZ等同于命令:wq的快捷键