Linux-vim

1. 三种模式

vim中有“一般模式”,“编辑模式”,“命令模式“三种模式,其作用分别为:

  • 一般模式中能够移动光标查看文件,可以删除字符或整行,复制,粘贴处理文档内容用

    • vi或者vim打开一个文件进入的就是一般模式。
    • 另外两种模式需要回到一般模式才能进入彼此。
  • 编辑模式可以编辑文件内容

    • 在一般模式中按下【i,I,o,O,a,A,r,R,】任何一个字母后进入编辑模式
    • 按下相关按键进入编辑模式后,下方会出现【INSERT】或者【REPLACE】字样
    • 按【Esc】键退出编辑模式,回到一般模式
  • 命令模式可以对通过命令对文档或者vim环境进行操作,例如查找,读取,存盘,替换,离开,显示行号等。

    • 在一般模式中按下【:,/,?】中任意一个。

2. vim常用命令

2.1 一般模式中的命令

2.1.1 光标移动

命令 说明
h,← 光标左移一个字符
j,↓ 光标下移一个字符
k,↑ 光标上移一个字符
l,→ 光标右移一个字符
n[h,j,k,l] n表示数字,再按下按键key
可以向指定方向移动n个字符
aa a
Ctrl + f,[PgDn] 屏幕向下移动一页
Ctrl + b,[PgUp] 屏幕向上移动一页
Ctrl + d 屏幕向下移动半页
Crtl + u 屏幕向上移动半页
+ 光标移动到非空格符的下一列
- 光标移动到非空格符的上一列
n n表示数字,再按下空格键
光标向右移动n个字符
0,[Home] 光标移动到第一个字符
$,[End] 光标移动到最后一个字符
H 光标移动到屏幕第一行第一个字符
M 光标移动到屏幕中央一行的第一个字符
L 光标移动到屏幕最后一行的第一个字符
G 光标移动到文件最后一行
nG n为数字,光标移动到文件第n行
gg 光标移动到文件第一行,相当于1G
n n为数字,光标下移n行

2.1.2 查找与取代

命令 说明
/word 向光标之后查找”word“
?word 向光标之前查找”word“
n 重复前一个查找的动作
N 反向重复前一个查找的动作
:n1,n2s/word1/word2/g n1和n2为数字
在n1行和n2行之间查找word1,并替换为word2
:1, $s/word1/word2/g 全文查找word1并替换为word2
:1, $s/word1/word2/gc 全文查找word1并替换为word2,且在替换前确认

2.1.3 删除,复制,粘贴,动作

命令 说明
x,【Del】 向后删除一个字符
X,【Backspace】 向前删除一个字符
nx n为数字,向后删除n个字符
nX n为数字,向前删除n个字符
dd 删除光标所在行
ndd n为数字,删除光标所在的向下n行
dnG n为数字,删除光标所在行到第n行
dG 删除光标所在行到最后一行
0G 删除光标所在位置到该行第一个字符
yy 复制光标所在行
nyy n为数字,复制光标所在的向下n行
ynG n为数字,复制光标所在行到第n行
yG 复制光标所在行到最后一行
y0 复制光标所在字符到该行行首
y$ 复制光标所在行到该行行尾
p 将复制的数据粘贴在光标下一行
P 将复制的数据粘贴在光标上一行
J 将光标所在行与下一行的数据合并成一行
C,c$ 删除当前行光标后面的字符,并进入编辑状态
c0,c^ 删除当前行光标前面的字符,并进入编辑状态
cc,S 删除当前行,并进入编辑状态
cw 删除光标到该单词结束位置,并进入编辑状态
cfx x为任意字符
删除光标到下一个x字符之间的文本,并进入编辑状态
cFx x为任意字符
删除光标到上一个x字符之间的文本,并进入编辑状态
cnG n为数字,删除光标所在行到第n行,并进入编辑状态
cG 删除光标所在行到末行,并进入编辑状态
u 撤销前一个动作
+ r 重做前一个动作
. 小数点,重复前一个动作

2.2 一般模式切换到编辑模式

命令 说明
i,I 进入插入模式(Insert mode)
i:从光标所在处插入
I:从光标所在行的第一个非空格处开始插入
a,A 进入插入模式(Insert mode)
a:从光标所在下一字符开始插入
A:从光标所在行的最后一个字符开始插入
o,O 进入插入模式(Insert mode)
o:在目前光标所在处下一行插入新的一行
O:在目前光标所在处上一行插入新的一行
r,R 进入取代模式(Replace mode)
r:取代光标所在字符一次
R:取代光标所在字符,直到按下
退出编辑模式,回到一般模式

2.3 一般模式切换到指令模式

2.3.1 存储与离开

命令 说明
:w 将编辑的数据写入硬盘
:w! 强制写入文件,即使文件属性为“只读”
需要对文件有写的权限
:q 离开vim
:q! 强制离开文件,不保存
:wq 保存并离开
:wq! 强制保存并离开
ZZ 若文件没有改动,则不保存离开,如果文件有改动,则保存后离开
:w[filename] 将文件另存为filename
:r[filename] 在光标处插入另一个文件的数据
:n1,n2 w [filename] 将n1到n2行之间的内容保存为filename
:! command 暂时离开vim查看command的执行结果

2.4 区块选择

命令 说明
v 字符选择,选择光标经过的字符
V 行选择,选择光标经过的行
+ v 区块选择,选择光标经过的区块
y 复制选择的部分
d 删除选择的部分

2.5 多文件编辑

命令 说明
:n 编辑下一个文件
:N 编辑下一上文件
:files 列出当前vim打开的所有文件

2.6 多窗口

命令 说明
:sp [filename] 开启新窗口
如果有文件名参数,在新窗口中打开该文件
如果没有文件名参数,打开同一个文件(同步显示)
+ j
+ ↓
光标下移一个窗口
+ k
+ ↑
光标上移一个窗口
+ q 离开窗口

3.vim暂存文件

  • 使用vim编辑时,会在同目录下建立名为.filename.swp的临时文件记录修改,正常退出后删除。
  • 发现.swp文件表明原文件异常退出,可以执行6种操作:
    • [O]pen Read-Only:以只读文件开打原文件。
    • (E)dit anyway:正常方式打开原文件。
    • (R)ecover:加载临时文件。注意之后正常离开后,要手动删除该临时文件。
    • (D)elete:删除临时文件。
    • (Q)uit:离开vim
    • (A)bort:放弃编辑行为。

4. vim配置文件

vim配置文件包括~/.vimrc,~/.viminfo

  • ~/.vimrc为vim参数设置
  • ~/.viminfo为用户在vim中的操作记录
  • 可以在一般模式种进行设置
命令 说明
:set all 显示所有环境参数设定值
:set 显示所有与系统默认值不同的环境参数设定值
:set nu
:set nonu
显示行号
取消显示行号
:set hlsearch
:set nohlsearch
高亮显示查询结果
取消高亮显示查询结果
:set autoindent
:set noautoindent
自动缩进
取消自动缩进
:set backup
:set nobackup
自动保存备份文件
取消自动保存备份文件
自动保存的话,源文件会被另存为filename~
:set ruler
:set noruler
显示状态栏说明
取消显示状态栏说明
:set showmode
:set noshowmode
显示所处模式
取消显示所处模式
:sytax on
:syntax off
是否根相关语法显示不同的颜色
:set bg=dark
:set bg=light
设置主题颜色

你可能感兴趣的:(Linux-vim)