Linux基础-Vim初级

简介

Vim是Linux下常用的文本编辑器和程序开发工具。

Vim打开文件方式:

#vim file,打开指定的文件
#vim +数字 file,打开指定的文件,并且将光标移到指定行
#vim +/关键字 file,打开指定文件,并且高亮显示关键字
#vim file1 file2 …,打开多个指定文件

Vim键盘图镇楼
Linux基础-Vim初级

常用模式

命令(普通)模式

在该模式下不能对文件直接编辑,可以输入快捷键进行一些操作(删除行、复制行、移动光标、删除行、黏贴等),打开文件后默认进入该模式。

光标移动
  • 光标移到行首:shift + 6 或 ^(T字母上面的6,不要按小键盘的6)
  • 光标移到行尾:shift + 4 或 $(R字母的左上角的4,不是小键盘的4)
  • 光标移到首行:gg
  • 光标移到尾行:G
  • 向上翻屏:ctrl + b 或 PgUp
  • 向下翻屏:ctrl + f 或 PgDown
  • 快速将光标移动到指定的行:数字G 或者输入英文“:”,其后输入行数数字,按下回车
  • 以当前光标为准向上/向下移动n行:数字↑,数字↓
  • 以当前光标为准向左/向右移动n字符:数字←,数字→
复制粘贴
  • 复制光标所在行:yy
  • 以光标所在行为准(包含当前行),向下复制指定的行数:数字yy
  • 粘贴:p(复制行会另起一行粘贴,复制字符串会从光标开始粘贴)
剪切/删除
  • 剪切/删除光标所在行:dd
  • 剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行:数字dd
  • 剪切/删除光标所在的当前行之后的内容,但是删除之后下一行不上移:D
撤销/取消撤销
  • 撤销:u(undo的意思)或者输入:u (不属于命令模式)
  • 取消撤销:ctrl + r

输入(编辑)模式

在该模式下可以对文件的内容进行编辑
以下的命令都会让vim从命令模式切换到编辑模式,但命令执行后的字符插入位置有所不同。
Linux基础-Vim初级
重点进入方式:i(insert)、a(after)、A、o。
退出方式:按下esc键

底线命令(末行)模式

可以在末行输入命令对文件进行操作(搜索、替换、保存、退出、撤销、高亮等)

  • 进入方式:由命令模式进入,按下“:”或者“/(表示向下查找)”或者“?(表示向上查找)”即可进入
  • 退出方式:
    a. 按下esc
    b. 连按2次esc键
    c. 删除末行全部输入字符
    d. 命令回车执行完毕
  • 保存操作:
    输入:“:w” 保存文件
    输入:“:w 路径” 另存为
  • 退出
    输入:“:q” 退出文件
    输入:“:x” 在文件没有修改的情况下,表示直接退出,在文件修改的情况下表示保存并退出
  • 保存并退出
    输入:“:wq” 保存并且退出
  • 强制 (!)
    输入:“:q!” 表示强制退出,刚才做的修改操作不做保存
  • 搜索/查找
    输入:“/关键词” 或者“?关键词”
    在搜索结果中切换上/下一个结果:N/n
    如果需要取消高亮,则需要输入:“:nohl”【no highlight】
  • 替换
    • ????/搜索的关键词/新的内容    替换光标所在行的第一处符合条件的内容
    • ????/搜索的关键词/新的内容/g    替换光标所在行的全部符合条件的内容
    • :%s/搜索的关键词/新的内容    替换整个文档中每行第一个符合条件的内容
    • :%s/搜索的关键词/新的内容/g    替换整个文档的符合条件的内容
      %表示整个文件 g表示全局(global)
  • 切换文件
    • 如果需要指定切换文件的名称,则可以输入:“:open 已经打开的文件名”
    • 查看当前已经打开的文件名称:“:files”
      Linux基础-Vim初级
      在%a的位置有2种显示可能:
      %a:a=active,表示当前正在打开的文件;
      #:表示上一个打开的文件
    • 可以通过其他命令来切换上一个文件/下一个文件
      输入:“:bn”切换到下一个文件(back next)
      输入:“:bp”切换到上一个文件(back prev)

可视化模式

  • 用 v 命令进入的字符可视化模式(Characterwise visual mode)。文本选择是以字符为单位的。
  • 用 V 命令进入的行可视化模式(Linewise visual mode)。文本选择是以行为单位的。
  • 用 ctrl-V 进入的块可视化模式(Blockwise visual mode)。可以选择一个矩形内的文本。
    常用的(可视模式)命令有:
    x或d 剪切(即删除,同时所选的文本进入剪贴板)
    y 复制
    上下左右方向键选中

模式切换

Linux基础-Vim初级


配置

Vim配置有三种情况:

  • 在文件打开的时候在末行模式下输入的配置(临时的)
  • 个人配置文件(~/.vimrc,如果没有可以自行新建)
  • 全局配置文件(vim自带,/etc/vimrc)
    注:个人配置优先于全局配置

常用配置

  • 显示行号:set nu或set number
  • 不显示行号:set nonu或set nonumber
  • 设置tab符长度为2个空格:set tabstop=2
  • 设置换行自动缩进长度为2个空格:set shiftwidth=2
  • 突出显示当前行:set cursorline
  • 显示括号匹配:set showmatch
  • 语法高亮:syntax on

异常退出

什么是异常退出:在编辑文件之后并没有正常的去wq(保存退出),而是遇到突然关闭终端或者断电的情况,则会显示下面的效果,这个情况称之为异常退出:
Linux基础-Vim初级
解决办法:将交换文件(在编程过程中产生的临时文件)删除掉即可,根据提示按D或者d即可删除交换文件,或者用删除命令rm强制删除交换文件

Linux基础-Vim初级