Linux命令 之 vim命令


本文主要总结vim常用方法。如有错误或者不足之处,请指出。

1. 模式切换

  • i 从目前光标所在处插入
  • I 在目前所在行的第一个非空格符处开始插入
  • a 从目前光标所在的下一个字符处开始插入
  • A 从光标所在行的最后一个字符处开始插入
  • o 在目前光标所在的下一行处插入新的一行
  • O 为在目前光标所在处的上一行插入新的一行
  • r 只会取代光标所在的那一个字符一次
  • R会一直取代光标所在的文字,直到按下 ESC 为止
  • Esc 退出编辑模式,回到一般模式

2. 一般模式

2.1 常用命令

  • ctrl+b 屏幕往后移动一页
  • ctrl+f 屏幕往前移动一页
  • n+空格 光标向右移动n个字符
  • H 光标移动到屏幕左上角
  • L 光标移动到屏幕左下角
  • G 移动到最后一行
  • nG 移动到第n行
  • gg 移动到第一行,相当于1G
  • n光标向下移动n行

3. 命令行模式

3.1 查找

  1. /word 向光标向下寻找一个名称为word的字符串
  2. ?word 向光标向上寻找一个名称为word的字符串
  3. n 代表重复前一个查找的动作
  4. N 与n刚好相反

3.2 替换

语法:

 :[range] s/{old-pattern}/{new-pattern}/[flags]
  1. range确定范围,不写默认为当前行。
 %         # 表示整个文件内容 
 .         # 表示当前行 
 $         # 表示最后一行 
 m,n       #表示从第m行到第n行 
 ,n        # 表示从当前行到第n行 
 n,        # 表示从第n行到当前行 
 n         # 指定行
 +n        # 表示当前行之后的n行
  1. old-pattern为要被替换的字符串,new-pattern为替换后的新字符串。替换操作与搜索操作使用同样的模式串系统。
  2. flags为替换标志位,默认为指定范围内的行的第一次匹配的位置,帮助文档:h s_flags,常用标志如下:
g:global,表示在指定范围内执行全局操作,替换所有匹配项
c:confirm,可以确认或拒绝修改
n:number,报告匹配到的次数,不替换,可用来查询匹配次数
i: 执行不区分大小写的替换
I: 执行区分大小写的替换
e: 防止替换失败时显示错误消息
  1. 举例
:% s/原文本/目标文本/g		# 全局替换,将原文本全部替换为目标文本
:% s/原文本/目标文本/		# 每行第一次匹配原文本的地方替换为目标文本

:% s/文本//n				# 统计指定文本在文件中出现的次数

:% s/^/# /g       # 每行的行首添加注释符#
:% s/^/\/\/ /g    # 每行的行首添加注释符//
  1. 结合正则表达式
:范围 s/\<文本\>/目标文本/标志	# 精确匹配指定文本,排除掉仅仅只是包含指定文本的地方

:% s/\<if\>/must/g	

3.2 删除、复制与粘贴

  • x 向后删除一个字符
  • X 向前删除一个字符
  • nx 连续向后删除n个字符
  • dd 删除光标所在行
  • ndd 删除光标所在的向下n行
  • d1G 删除光标所在行到第一行的所有数据
  • dG 删除光标所在到最后一行的所有数据
  • d$ 删除光标所在处,到该行的最后一个字符
  • d0 删除光标所在处,到该行的最前一个字符
  • yy 复制光标所在的那一行
  • nyy 复制光标所在的向下n列
  • y1G 复制光标所在行到第一行的所有数据
  • yG 复制光标所在行到最后一行的所有数据
  • y0 复制光标所在的那个字符到该行行首的所有数据
  • y$ 复制光标所在的那个字符到该行行尾的所有数据
  • p将已复制的数据在光标下一行粘贴上
  • P 则为贴在光标的上一行
  • u 恢复前一个操作
  • Ctrl+r重做上一个操作

4. vim常用设置

在home目录下执行vi .vimrc,输入如下参数:

set wrap                       "设置自动换行
set tabstop=4                  "设置tab长度为4
set softtabstop=4              "使得按退格键时可以一次删除4个空格
set shiftwidth=4               "设定>命令移动时宽度为4
set autoindent                 "自动缩进
set cindent                    "C语言缩进风格
set number                     "显示行号
colorscheme desert             "设置颜色方案

set fileencodings=utf-8,gb2312,gbk,gb18030    "自动探测fileencoding的顺序列表
set termencoding=utf-8                        "vim终端的字符编码方式
set encoding=utf-8                            "vim内部使用的编码方式

5. 参考文献

  1. https://blog.csdn.net/weixin_42233789/article/details/105362550
  2. http://t.csdn.cn/IyGhm
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值