vi/vim 的使用/常用命令

vi/vim 的使用/常用命令

所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器。vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。vim 是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

操作模式

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

命令模式

用户刚刚启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被 vim 识别为命令,而非输入字符。

输入模式

在输入模式中可以对文本进行编辑,按 ESC 进入命令模式。

底线命令模式

在命令模式中输入 : 进入底线命令模式。

  • :w : 保存,后边可以追加文件名就是另存为
  • :w! : 强制保存,跟你的权限有关
  • :q : 退出
  • :q! : 强制退出
  • :x : 写入并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间
  • :r filename : 在编辑的数据中,读入另一个文件的数据。即将 filename 这个文件的内容加到光标所在行后面
  • ZZ : 保存并离开 注意没有 :

常用命令

  • 进入输入模式 :
    • i : (插入),从目前光标所在处插入
    • I : (插入),从目前光标所在行第一个非空字符插入
    • a : (插入),从目前光标所在的下一个字符处开始插入
    • A : (插入),从光标所在行的最后一个字符处开始插入
    • o : (插入),在目前光标所在的下一行处插入新的一行
    • O : (插入),在目前光标所在处的上一行插入新的一行
    • r : (替换),只会取代光标所在的那一个字符一次
    • R : (替换),会一直取代光标所在的文字,直到按下 ESC 为止
  • 光标移动 :
    • h j k l 或者 ← ↓ ↑ → : 左、下、上、右
    • Ctrl b : 向上翻页
    • Ctrl f : 向下翻页
    • Ctrl u : 向上翻半页
    • Ctrl d : 向下翻半页
    • n Space : 光标向后移动 n 位
    • n Enter : 光标向下移动 n 行
    • Home 或者 0 : 光标移动该行首位
    • End 或者 $ : 光标移动该行末尾
    • w : 下个字的首位
    • e : 下个字的末尾
    • H : 光标移动到这个屏幕的最上方那一行的第一个字符
    • M : 光标移动到这个屏幕的中间那一行的第一个字符
    • L : 光标移动到这个屏幕的最下方那一行的第一个字符
    • G : 移动到这个文件的最后一行
    • nG : 移动到这个文件的第 n 行
    • gg : 移动到这个文件的第一行
  • 查找 :
    • / A : 向下查找关键字 A,n 表示继续查找下一个,Nn 相反
    • ? A : 向上查找关键字 A,n 表示继续查找下一个,Nn 相反
    • :n1,n2s/word1/word2/g : 在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2
    • :1,$s/word1/word2/g : 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2
    • :1,$s/word1/word2/gc : 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2。且在取代前显示提示字符给用户确认 (confirm) 是否需要取代
  • 删除 :
    • x : 删除光标所在位置的后面一个字符
    • nx : 删除光标所在位置的后面 n 个字符
    • X : 删除光标所在位置的前面一个字符
    • nX : 删除光标所在位置的前面 n 个字符
    • dd : 删除光标所在行
    • ndd : 从光标所在行开始删除 n 行
    • dG : 删除光标所在行到最后一行之间的数据
    • dgg | d1G : 删除第一行到光标所在行之间的数据
    • d$ : 删除该行光标所在位置之后的数据,包括该位置的数据
    • d0 : 删除该行光标所在位置之前的数据,不包括该位置的数据
  • 复制 :
    • yy : 复制光标所在行
    • nyy : 从光标所在行开始复制 n 行
    • yG : 复制光标所在行到最后一行之间的数据
    • ygg | y1G : 复制第一行到光标所在行之间的数据
    • y$ : 复制该行光标所在位置之后的数据,包括该位置的数据
    • y0 : 复制该行光标所在位置之前的数据,不包括该位置的数据
  • 粘贴
    • p : 将已复制的数据在光标下一行粘贴上
    • P : 将已复制的数据在光标上一行粘贴上
  • 恢复 :
    • u : 恢复前一个操作
    • Ctrl r : 重做上一个操作
    • . : 是重复前一个操作
  • 块选择 :
    • v : 字符选择,会将光标经过的地方反白选择
    • V : 行选择,会将光标经过的行反白选择
    • Ctrl v : 块选择,可以用长方形的方式选择资料
    • y : 将反白的地方复制
    • d : 将反白的地方删除
  • 多文件 :
    • :n : 多文件编辑的时候,下一个文件
    • :N : 多文件编辑的时候,上一个文件
    • :files : 多文件编辑的时候,文件列表
    • :sp : 开启一个新窗口,如果有加 filename, 表示在新窗口开启一个新文件,否则表示两个窗口为同一个文件内容(同步显示)
    • Ctrl + w j 或者 Ctrl + w ↓ 光标可移动到下方的窗口
    • Ctrl + w k 或者 Ctrl + w ↑ 光标可移动到上方的窗口
  • 环境设置 :

    • :set nu : 设置行号
    • :set nonu : 取消行号
    • :set hlsearch : 设置高亮度查找
    • :set nohlsearch : 取消高亮度查找
    • :set backup : 自动备份文件
    • :set ruler : 开启右下角状态栏说明
    • :set showmode : 显示左下角的 INSERT 之类的状态栏
    • :set backspace={0,1,2} : 设置退格键功能。为 2 时可以删任意字符。为 0 或 1 时仅可以删除刚才输入的字符。
    • :set all : 显示目前所有的环境参数值
    • :set : 显示与系统默认值不同的参数值
    • :syntax on/off : 是否开启依据相关程序语法显示不同的颜色
    • :set bg=dark/light : 是否显示不同的颜色色调
    • 但是我们没有必要每次使用 vim 都要重新设置一次各个参数值。我们可以通过配置文件来直接规定我们习惯的 vim 操作环境。整体 vim 的设置值一般是放在 /etc/vimrc 中的。我们一般不要修改这个文件。我们可以通过修改 ~/.vimrc 这个文件,如果不存在,可以手动创建。然后将我们所希望的设置值写入
    vim ~/.vimrc
    
    # set前面也可以加冒号,结果一样
    
    set hlsearch  
    set backspace=2  
    set ruler  
    set showmode  
    set nu  
    syntax on

参考

http://www.runoob.com/linux/linux-vim.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值