Linux之Vim编辑器使用

断了今生、忘了曾经 提交于 2020-02-10 03:28:16

vim文本编辑器用于建立 编辑 显示文本文件,vim没有菜单,只有命令

  在windows 平台下可使用gvim进行编写

 

Vim三种工作模式:

常有命令:

1.INSERT插入命令

  i 在光标前插入     I 在当前行首插入

  a 在光标后插入      A在当前行尾插入

  o 在当前行插入一行  O 在当前行上插入一行

2.光标定位命令

  h 左移一个字符 (等同于方向键<---)    H (head)    移至屏幕上端——第一行开头

  j 移到下一行 (等同于上方向键)       M (middle) 移至屏幕中间——中间行开头

  k 移到上一行 (等同于下方向键)       L  (line)     移至屏幕下端——最后行开头

  右移一个字符 (等同于方向键--->)

  $ 移至行尾

  0 移至行首(数字零)

  gg 光标到第一行    nG  光标到第 n 行  2G  到第二行等于 :2

  G  光标到最后一行   :n   光标到第 n 行   

3.命令模式进入——编辑模式

  : 命令 <Enter>回车    

  效果:执行后,制动回到命令模式

例如:显示当前文件的行号 :set nu  取消行号 :set nonu

4.删除命令

  x     删除光标所在处字符

  nx     删除光标所在处后n个字符

  dd   删除当前行      ndd 删除n行 10dd 删除当前行到后面10行

  dG   删除光标所在行到末尾的内容

  D   删除光标所在处到行尾的字符

  :n1,n2d 删除 行1 到 行2 范围内的行

5.复制和剪切命令

  yy, Y     复制当前行        dd  剪切当前行

  nyy,nY   复制当前行以下几行    ndd    剪切当前行以下几行

  p       粘贴在当前行下一行

  P              粘贴在当前行上一行

6.替换和取消命令

  r     取代光标处字符(替换当前光标所在处单个字符)

  R    从光标所在处开始替换字符  按ESC键结束

  u(小写)   取消上一步操作(在没保存之前生效) undo   

7.索索和替换命令

  @1 /string  注意Linux中区分大小写,搜索字符串的时候,如果但是小写,大写的字符串不会被搜索出

在搜索前可使用命令忽略大小写

  :set ic  忽略大小写    

  :set noic   关闭大小写

例如:在文件中搜索处含有ftp或FTP的行

  :set ic

  /ftp

 n  next  从上向下查找下一个出现的位置

 N      从下向上查抄下一个出现的位置

  @2 全文替换指定字符串

  :%s/old/new/g        替换文本中所有字符串

%s 全部  old 要被替换的字符串 new 被替换后的字符串  g global 不提示直接替换 若为c 会提问是否替换 old字符串

 例如: :%s/jack/linux/g    将文件中的jack 替换成linux

  :n1,n2s/old/new/g  在指定范围内替换字符串

8.退出命令

  :wq  保存并退出 快捷键 ——>  ZZ (按两次大写ZZ)

  :wq! 强行保存退出(当文件所有者或root没有 w 写入权限时,可以使用强行保存退出)

      只有文件所有者可root超级管理员可以使用此命令

  :q!  不保存退出

  :w  保存一下,不退出 相当于windows的 Ctrl+S

  :w /root/test  另存为到另一个位置 

应用实例

1.导入文件

  :r fliename  把filname文件的内容导入到当前文件中的指定位置

例如:把 /home/test/hello.php 文件导入到当前文件中   :r /home/test/hello.php

2.在vim下执行 命令

  :! 命令   例如 :  :! ls -al /etc/test/

  我们在编辑文件时没必要先保存退出,再执行命令,可以直接在vim中执行

:! 命令 执行后回车继续

小技巧:1和2一起使用

  例 :我们在写脚本的时候需要标注出 注释 版权 负责人 最后修改时间

    可使用 :r !date 把当前系统时间导入到文件中指定位置

3.定义快捷键

  :map 快捷键 触发命令   回车执行命令

例如 为每一行行首添加注释#

  快捷键定义  :map ^P I#   I表示进入插入模式,光标定位到行首 #插入#符号   

注意:

  定义快捷键时 ^P 的输入使用(分别按Ctrl+v和 Ctrl+p或(Ctrl+v+p一起敲))进行输入

去掉行首#注释符   :map ^B 0

插入邮箱地址    :map ^E ijack@sina.com

我们可以把日常常用的工作定义为快捷键提高编写的效率

4.连续行注释

  @1 :n1,n2s/^/#/g   ^ 表示行首

    在n1到n2的范围内行首加入#注释符    :4,8s/^/#/g   在第4到8行的行首加上#符

  @2 :n1,n2s/#//g     去掉字符 即替换为空

    4,8s/#//g  会把范围内的所有#符号给去掉不单指行首

    4.8s/^#//g   只把范围内的行首的#符去掉

  @3 特殊字符转义处理

  如果使用的注释符为 // 则需要进行转义

  :1,5s/^\/\//g  在1到5行的行首插入//注释符  对//进行转义

5.替换命令

  :ab  mail jack@sina.com

     可把mail看作 a jack@sina.com 看作b

在vim 中输入 mail  按空格或回车则变为 jack@sina.com

  如果在文件中需要不断出入较长的相同文本可使用这一命令

取消 :ab 定义

  :unab mail 回车 然后在文件中编辑则不会被替换

也可以取消快捷键的定义 :unmap ^P

注意:

上述我们在vim中的一些设置和快捷键的定义只在当前打开编辑的文件下有效,vim保存退出后都会失效,我们可以通过更改vim配置文件来使得自己的设置对于每次打开的文件都适用

编辑vim配置:

  每个用户都有一个宿主目录  

    root 的宿主目录为   /root

    普通用户宿主目录为 /home/uername

在宿主目录下都有一个文件    .vimrc(缺省文件——空文件)

我们可以在这个文件下配置vim的配置

例如我们可以修改root的 .vimrc 文件

  vi /root/.vimrc 

在里面写入

  set nu 打开每个文件都显示行号 可加入:也可不写

  map ^P I# 快捷键加注释

  ab mail jack@sina.com

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!