zoukankan      html  css  js  c++  java
  • vim编辑器详解

    1. vim编辑器的基本使用

    1.1 几种基本模式

    • 编辑模式、命令模式
    • 输入模式
    • 末行模式:内置的命令行接口

    1.2 打开文件

    • 基本格式
      • vim  [OPTION] ...  FILE ...
    • 定位&匹配  
      • vim  FILE  +#   
        • 打开文件后,直接让光标处于第#行的行首
      • vim  FILE  +/PATTERN   
        • 打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首

    1.3 模式转换

    1)编辑模式 ——> 输入模式

    • i:insert, 在光标所在处输入
    • I:在当前光标所在行的行首输入
    • a:append, 在光标所在处后面输入
    • A:在当前光标所在行的行尾输入
    • o:在当前光标所在行的下方打开一个新行
    • O:在当前光标所在行的上方打开一个新行

    2)输入模式 ——> 编辑模式

    • 按ESC

    3)编辑模式 ——> 末行模式

    4)末行模式 ——> 编辑模式

    • 按ESC

    1.4 关闭文件

    • :q  退出
    • :q!  强制退出,丢弃做出的修改
    • :wq  保存退出
    • :x  保存退出
    • :w /PATH/TO/SOMEWHERE
    • ZZ  保存退出

    2. 光标跳转

    2.1 字符间跳转

    • h, j, k, l
      • h: 左
      • l: 右
      • j: 下
      • k: 上
    • #COMMAND:跳转由#指定的个数的字符

    2.2 单词间跳转

    • w:下一个单词的词首
    • e:当前或下一单词的词尾
    • b:当前或前一个单词的词首
    • #COMMAND:由#指定一次跳转的单词数

    2.3 行首行尾间跳转

    • ^: 跳转至行首的第一个非空白字符
    • 0: 跳转至行首
    • $: 跳转至行尾

    2.4 移动

    1)行间移动

    • #G:跳转至由#指定行
    • G:最后一行
    • 1G, gg:第一行

    2)句间移动

    • )
    • (

    3)段落间移动

    • }
    • {

    3. vim的编辑命令

    3.1 基本编辑操作

    1)字符编辑

    • x:删除光标处的字符
    • #x:删除光标处起始的#个字符
    • xp:交换光标所在处的字符及其后面字符的位置

    2)替换命令(r, replace)

    • r:替换光标所在处的字符

    3)删除命令

    • d:删除命令,可结合光标跳转字符,实现范围删除
    • d$:
    • d^:
    • d0:
    • dw
    • de
    • db
    • #COMMAND
    • dd: 删除光标所在的行
    • #dd:多行删除

    4)粘贴命令(p, put, paste)

    • p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
    • P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面

    5)复制命令(y, yank)

    • y: 复制,工作行为相似于d命令
    • y$
    • y0
    • y^
    • ye
    • yw
    • yb
    • #COMMAND
    • yy:复制行
    • #yy: 复制多行;

    6)改变命令(c, change)

    • 编辑模式 --> 输入模式
    • c: 修改
    • c$
    • c^
    • c0
    • cb
    • ce
    • cw
    • #COMMAND
    • cc:删除并输入新内容
    • #cc:

    3.2 其它编辑操作

    1)可视化模式

    • v: 按字符选定
    • V:按行行定
    • 说明:经常结合编辑命令 d, c, y 一起使用

    2)撤消此前的编辑

    • u(undo):撤消此前的操作
    • #u:撤消指定次数的操作

    3)撤消此前的撤消

    • Ctrl+r

    4)重复前一个编辑操作

    • 使用点号 .

    3.3 翻屏操作

    • Ctrl+f:向文件尾部翻一屏
    • Ctrl+b:向文件首部翻一屏
    • Ctrl+d:向文件尾部翻半屏
    • Ctrl+u:向文件首部翻半屏

    4. vim中的末行模式

    • 内建的命令行接口

    4.1 地址定界

    • 语法:
      • :start_pos, end_pos
    • 规则:
      • #  具体第#行,例如2表示第2行
      • #, #  从左侧#表示行起始位置,到右侧#表示行结尾
      • #, +# 从左侧#表示的行起始,加上右侧#表示的行数
      • .  表示当前行
      • $  表示最后一行
      • %  表示全文,相当于1,$
      • /pat1/, /pat2/   从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束
    • 使用方式:(后跟一个编辑命令)
      • d 删除
      • y 复制
      • w  /path/to/somewhere  将范围内的行另存至指定文件中
      • r  /path/to/somewhere  在指定位置插入指定文件中的所有内容

    4.2 查找&替换

    1)查找

    • /PATTERN:从当前光标所在处向文件尾部查找
    • ?PATTERN:从当前光标所在处向文件首部查找
      • n:与命令同方向
      • N:与命令反方向

    2)查找并替换

    • 语法:(s:在末行模式下完成查找替换操作)
      • s/要查找的内容/替换成的内容/修饰符
    • 规则:
      • 要查找的内容:可以使用模式
      • 替换成的内容:不能使用模式,但可以使用 1, 2 ... 等后向引用符号,还可以使用“&”引用前面查找时查找到的整个内容
      • 修饰符:
        • i  忽略大小写
        • g  全局替换;默认情况下,每一行只能替换第一次出现,使用g选项则为全部替换
    • 说明:
      • 查找替换中的分隔符 / 可以替换为其他字符,如 @、#

    4.3 多文件模式

    • 语法:
      • vim FILE1 FILE2 FILE3 ...
    • 操作:
      • :next 下一个
      • :prev 前一个
      • :first 第一个
      • :last 最后一个
      • :wall 保存所有
      • :qall 退出所有

    4.4 窗口分隔模式

    1)多文件窗口分隔

    • vim  -o | -O    FILE1    FILE2 ...
      • -o: 水平分割
      • -O: 垂直分割
    • 在窗口间切换:
      • Ctrl+w, Arrow

    2)单文件窗口分割

    • Ctrl+w,s:split,水平分割
    • Ctrl+w,v:vertical,垂直分割

    5. 定制vim的工作特性

    5.1 配置文件

    • 全局配置文件:/etc/vimrc
    • 局部配置文件:~/.vimrc

    5.2 配置项

    • 行号
      • 显示:set number, 简写为set nu
      • 取消显示:set nonumber, 简写为set nonu
    • 括号匹配
      • 匹配:set showmatch, 简写为set sm
      • 取消:set nosm
    • 自动缩进
      • 启用:set ai
      • 禁用:set noai
    • 高亮搜索
      • 启用:set hlsearch
      • 禁用:set nohlsearch
    • 语法高亮
      • 启用:syntax on
      • 禁用:syntax off
    • 忽略字符的大小写
      • 启用:set ic
      • 不忽略:set noic
    • 设置Tab缩进的空格数
      • set  tabstop=4
    • 设置编辑器将多少个空格视为一个缩进
      • set  shiftwidth=4

    6. 一些使用技巧

    6.1 多行编辑

    1)多行添加(添加注释)

    • Ctrl+v 进入可视化模式
    • 然后选中想要多行编辑的位置范围
    • 键入大写的 I ,进入插入模式,再键入想要插入的字符
    • 最后连按两次ESC,完成添加

    2)多行删除

    • Ctrl+v 进入列选择模式,移到光标把注释符选中,按下d,注释就被删除了

  • 相关阅读:
    第三章 kubernetes核心原理
    Jmeter
    Docker 入门学习
    第二章 Kuberbetes实践指南
    第一章 Kubernetes入门
    java中的引用与ThreadLocal
    Disruptor极速队列
    Redis设计与实现——单机数据库的实现
    Redis设计与实现——数据结构与对象
    python装饰器
  • 原文地址:https://www.cnblogs.com/hgzero/p/13665892.html
Copyright © 2011-2022 走看看