vim

vim键盘图

在这里插入图片描述

基本模式

在这里插入图片描述

  • 编辑模式
    编辑模式用于对文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。
  • 输入模式
    输入模式用于对文件执行写操作。使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令。
  • 命令模式
    默认处于命令模式。此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。

模式转换

命令模式 → 输入模式

i:insert,在光标所在处输入
a:append,在光标所在处后面输入
I:在当前光标所在行的行首输入
A:在当前光标所在行的行尾输入
o: 在当前光标所在行的下方打开一个新行
O:在当前光标所在行的上方打开一个新行
c: 连续两次键入删除该行并输入
C: 删除光标到结尾内容并输入

输入模式→命令模式

ESC

命令模式→编辑模式

:

编辑模式→命令模式

ESC

关闭文件

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

光标跳转

  1. 字符间跳转
h: 左
l: 右
j: 下
k: 上

#COMMAND:跳转#个数的字符;
  1. 单词间跳转
w:下一个单词的词首
e:当前或下一单词的词尾
b:当前或前一个单词的词首

#COMMAND:由#指定一次跳转的单词数
  1. 行首行尾跳转
^: 跳转至行首的第一个非空白字符;
0: 跳转至行首;
$: 跳转至行尾;
  1. 行间跳转
#G: 跳转#行;
G: 最后一行;
1G, gg: 第一行;
  1. 句间移动
(: 向上一句移动
): 向下一句移动
  1. 段落间移动
{: 向上一段移动
}: 向下一段移动

编辑命令

  1. 字符编辑
x:  删除光标处的字符;
#x: 删除光标处起始的#个字符;
xp: 交换光标所在处的字符及其后面字符的位置;
  1. 替换命令
r: 替换光标所在处的字符
R: 从光标开始处连续替换后面多个字符,ESC退出输入模式
  1. 删除命令
d^: 删除光标到行首
d$: 删除光标到行尾

dd: 删除光标所在行
dw: 删除w命令跳转的单词
db: 删除b命令跳转的单词
de: 删除e命令跳转的单词
#COMMAND: 删除#次
  1. 改变命令
c^: 删除光标到行首,并进入输入模式
c$: 删除光标到行尾,并进入输入模式

cc: 删除光标所在行,并进入输入模式
cw: 删除w命令跳转的单词,并进入输入模式
cb: 删除b命令跳转的单词,并进入输入模式
ce: 删除e命令跳转的单词,并进入输入模式
#COMMAND: 删除#次,并进入输入模式
  1. 复制命令
y^: 复制光标到行首
y$: 复制光标到行尾

yy: 复制光标所在行
yw: 复制w命令跳转的单词
yb: 复制b命令跳转的单词
ye: 复制e命令跳转的单词
#COMMAND: 复制#次
  1. 粘贴命令
p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
  1. 可视化模式
v: 按字符选定
V:按行行定
经常结合编辑命令: d,c,y
  1. 撤销
u:  撤消此前的操作;
#u: 撤消指定次数的操作;
  1. 反撤销
Ctrl+r: 恢复上一次撤销
  1. 重复执行
.: 重复执行上一次操作

翻屏操作

Ctrl+f: 向文件尾部翻一屏;
Ctrl+b: 向文件首部翻一屏;

Ctrl+d: 向文件尾部翻半屏;
Ctrl+u: 向文件首部翻半屏;

查找替换

地址定界

#:具体第#行,例如2表示第2行;
#,#:从左侧#表示行起始,到右侧#表示行结尾;
#,+#:从左侧#表示的行起始,加上右侧#表示的行数;
.:当前行
$:最后一行
%:全文,相当于1,$
/pat/:模式匹配

编辑

d:删除匹配到的内容
y:复制匹配到的内容
w /PATH/TO/SOMEWHERE:将范围内的行另存至指定文件中
r /PATH/FROM/SOMEFILE:在指定位置插入指定文件中的所有内容

查找

/PATTERN:从当前光标所在处向文件尾部查找
?PATTERN:从当前光标所在处向文件首部查找
    n:查找下一个与命令同方向
    N:查找下一个与命令反方向
/PATTERN\c 忽略大小写

替换

格式:
地址定界s/查找内容/替换内容/修饰符
要查找的内容:可使用模式
替换为的内容:不能使用模式,但可以使用\1, \2, ...等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容;
修饰符:
    i: 忽略大小写
    g: 全局替换;默认情况下,每一行只替换第一次出现;
格式中"/"分隔符可替换为@和#
s@@@
s###

实例:
删除文本中的空白行

:g@\(^$\)\|\(^\s\+$\)@d
:g/^\s*$/d

删除行首空格:

:%s/^\s*//g

删除行尾空格:

:%s/\s*$//g

多文件模式

vim FILE1 FILE2 FILE3 ...同时打开多个文件编辑

:next  下一个
:prev  前一个
:first 上一个
:last  最后一个

:wall  保存所有
:qall  退出所有

多窗口模式

vim -o|-O FILE1 FILE2 ...同时打开多个文件,分屏显示
-o: 水平分割
-O: 垂直分割

vim FILE1 
Ctrl+w+s: split, 水平分割显示
Ctrl+w+v: vertical, 垂直分割显示

在窗口间切换:Ctrl+w+(j、k、h、l)

vim特性

Vim 的全局配置一般在/etc/vimrc,对所有用户生效。用户个人的配置在~/.vimrc。

  • 行号
    显示:set number, 简写为set nu
    取消:set nonumber, 简写为set nonu
  • 括号匹配
    匹配:set showmatch, 简写为set sm
    取消:set nosm
  • 高亮搜索
    启用:set hlsearch
    禁用:set nohlsearch
  • 语法高亮
    启用:syntax on
    禁用:syntax off
  • 忽略字符的大小写
    启用:set ic
    禁用:set noic
  • tap缩进
    set tabstop=4
  • shift缩进
    set shiftwidth=4
  • 自动缩进
    set autoindent
  • 粘贴格式
    启用:set paste
    禁用:set nopaste
  • 启用鼠标
    set mouse=a
  • 设置编码
    set encoding=utf-8

自动添加注释

编辑配置文件,添加如下内容,在使用vim便可以按F6添加如下内容。

[root@localhost ~]# cat .vimrc 
function AddTitle()
  call setline(1,"#!/bin/bash")
  call append(1,"#====================================================")
  call append(2,"# Author: liuxiangtao")
  call append(3,"# Create Date: " . strftime("%Y-%m-%d"))
  call append(4,"# Description: 描述内容")
  call append(5,"#====================================================")
endf
map <F6> :call AddTitle()<cr>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值