vim编辑器


vim 编辑器

目录
  • vim 编辑器
    • 什么是vim
    • 为什么要使用vim
    • vim的三种工作模式
      • 命令模式(普通模式)
        • 跳转光标
        • 复制粘贴
        • 删除剪切
        • 撤销替换
      • 编辑模式(输入模式)
      • 末行模式(底行模式)
        • 文件的保存退出
        • 跳转行号
        • 内容的查找和替换
        • 末行模式报错
        • 末行模式其他功能
      • vim视图模式
        • 块视图模式
        • 行视图模式
      • vim扩展选项
    • 思维导图

什么是vim

  • vim 是Linux系统中一个强大的文本编辑器。
  • vim 功能比vi 强大。

为什么要使用vim

  • 编辑配置文件

  • 写脚本

  • 批量修改

  • 查找内容

  • 语法检测高亮显示

vim的三种工作模式

命令模式(普通模式)

  • 最开始使用vim命令打开文件时,即进入命令模式

跳转光标

G:(Shift + g)将光标快速跳转到文件的末尾
gg:将光标跳转到文件的开头
Ngg:N代表阿拉伯数字,将光标跳转到第N行
^:(shift + 6)将光标跳转到行首
$:(Shift + 4)将光标跳转到行末

复制粘贴

yy:复制光标所在行的内容
Nyy:(YNY)N代表阿拉伯数字,复制光标所在行及后N行内容
p:将复制的内容,粘贴到光标所在行的下一行
P(大写):将复制的内容,粘贴到光标所在行的上一行

删除剪切

dd:剪切,删除光标所在行的内容
Ndd|dNd:剪切,删除指定行数的内容
dG:删除光标所在行到文件末尾所有行的内容
D:将光标所在字符删除一直删到行末
x:剪切,删除光标所在字符
X:剪切,删除光标所在字符的前一个字符

撤销替换

r:替换光标所在字符
R:批量替换字符,替换光标所在字符及后面所有字符,直到按ESC结束
u:撤销上一步操作
Ctrl+r:恢复撤销

编辑模式(输入模式)

  • 从命令模式切换到编辑模式
# 进入编辑模式的标识,左下角 -- INSERT --

a:在光标所在字符之后,进入编辑模式
A:将光标跳转到行末,并进入编辑模式

o:在光标所在行的下一行(另起一行)进入编辑模式
O:在光标所在行的上一行,进入编辑模式

i:在光标所在字符之前进入编辑模式
I:将光标移动到行首,并进入编辑模式

s:删除光标所在字符,并进入编辑模式
S:删除光标所在行一整行内容,并进入编辑模式
  • 从编辑模式切换回命令模式
ESC

末行模式(底行模式)

文件的保存退出

# 进?末?模式 只能从命令模式?末?模式
## ?式? 输?:
## ?式? 输?/

:w # write 写?,保存
:q # quit 退出
:wq # 保存并退出
:w! # 强制保存
:q! # 强制退出
:wq! # 强制保存并退出
:x # 保存退出

跳转行号

# 命令模式中,跳转?号 Ngg

:N N代表阿拉伯数字,将光标跳转到指定的?(末行模式)

内容的查找和替换

# 内容查找

/string:查找想要查找的字符串,输?回?后会?亮显示

按n:向下查找下?个字符串
按N:向上查找上?个字符串


# 内容替换
:/原内容/要替换的内容/
:/aaa/bbb/            #  把root替换成zls(只这么写,不?效)

:s/aaa/bbb/           # s: substitute查找并替换
:s/aaa/bbb/g          # g:global 全局(默认只替换提??内容)
:1,10s/aaa/bbb/g      # 1,10 把第1行至第10?匹配到的内容全部替换
:%s/aaa/bbb/g         # "%":表示整个文件所有行

使用"#"作为分隔符
此时中间出现的"/"不会作为分隔符,如:将当前行的字符串"a/"替换为"b/" 和 把 "/sbin/nologin" 替换成 "/bin/bash"

## 举例:
:s#/a\/#b\/#g
:s#a/#b/#g                              ##  推荐?式

## 举例:
:%s/\/sbin\/nologin/\/bin\/bash/g
:%s#/bin/bash#/sbin/nologin#g           ##  推荐?式

分隔符可以随意使?,建议就是,原内容和新内容,??不包含你写的分隔符即可。
\#abc      $abc

末行模式报错

## ?件内容修改后,不保存想退出 :q,必须加!退出
E37: No write since last change (add ! to override)

## 针对root?户,只读?件?法修改,保存退出需要加! :wq!
E45: 'readonly' option is set (add ! to override)

## ?法打开这个?件
E212: Unable to open and write files

末行模式其他功能

# 显示?号
:set number                # 简写: :set nu

# ?动缩进
:set autoindent            # 简写: :set ai

# 不区分??写
:set ignorecase            # 简写: :set ic

# 查看?件中的结尾和制表符,等特殊符号
:set list


## 取消设置
:set nonu
:set noai
:set noic
:set nolist

vim视图模式

  • 视图模式,是属于命令模式之下的?种模式

块视图模式

Ctrl + v : 进?可视块视图模式
-- VISUAL BLOCK --

# 1.按光标删除选中的所有字符 x

# 2.批量修改?件(添加注释)
1)按Ctrl + v进?可视块视图模式
2)移动光标
- 1.按下键
- 2.Ngg
- 3.G
3)按 Shift + i 进?编辑模式
4)输? "#"
5)按ESC退出编辑模式

行视图模式

shift + v 进??视图模式

vim扩展选项

## ?件对?命令:
diff (不推荐)

[root@localhost ~]# diff ~/paixu1.txt  ~/kobe.txt 
1,11c1,3
< B:A:123
< C:F:223
< D:n:421
< J:m:632
< K:l:756
< M:g:364
< hjk
<   kjjkjkl
<     nklklj
< 	  klskl
< 	  :
---
> 123
> 456
> ABC


## ?件对?命令:
vimdiff (推荐)

## vim 同时编辑多个?件
-o:?平分割
-O:垂直分割

## Ctrl + ww 在分割的文件间切换

## 编辑?件指定的?
vim +N :N代表阿拉伯数字

## 打开是两个对比文件,退出的时候也要两次退出

思维导图