vi vim 文本编辑器 的使用

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/liu_changshen/article/details/102541321

vi 是 linux中最经典的文本编辑器

vi 的核心思想是让程序员的手指始终保持在键盘的 核心区域 就能完成所有操作

vim 是从vi发展出来的文本编辑器,支持代码补全,编译 及 错误跳转 等方便编程的功能特别丰富 在程序员中被广泛使用,被称为编辑器之神.

打开文件/新建文件

vim 文件名

如果文件已存在,会直接打开该文件 如果文件不存在,保持退出时,就会新建一个文件

打开文件并且跳到指定行

vim 文件名 + 行数

如果只带上+ 而不指定行号 会直接定位到文件末尾

进入文件末尾

:q! 不保存退出

:w 保存

:wq 保持并退出(末行)

:x 保存并退出(末行)

zz 编辑模式退出

光标上下左右

h 光标向左

j 向下

k 向上

l 向右

行内移动

w 向后移动一个单词

b 向前移动一个单词

0 行首

^ 行首 第一个不是空白字符的位置

$ 行尾

行数移动

gg 文件顶部

G 文件末尾

数字gg 移动到数字对应行

数字G 移动到数字对应行

:数字 移动到数字对应行

屏幕移动

Ctrl + b 向上翻页

Ctrl + f 向下翻页

H 屏幕顶部

M 屏幕中间

L 屏幕底部

vim 中以空行来作为段落分隔

{ 上一段

} 下一段

% 括号匹配及切换{} [] ()

选中文本(可视)

v 从光标位置开始按照正常模式选择文本

V 选中光标经过的完整行

ctrl+v 垂直方向选中文本

可视模式下 可以和 移动命令连用 例如ggVG 可以选中所有的内容

撤销和恢复撤销

u 撤销上次的命令

ctrl + r 恢复撤销的命令

删除文本

x 删除光标所在的字符,或者选中的文字

d 删除移动命令对应的内容

dd 删除光标所在行可以ndd删除多行

D 删除至行尾

提示: 如果使用 可视模式 已经选中了一段文本, 那么无论使用 d 还是 x, 都可以删除选中文本

删除命令可以和移动命令连用, 以下是常见的组合命令:

dw 从光标位置删除到单词末尾

d0 从光标位置删除到一行的起始位置

d} 从光标位置删除到段落末尾

ndd 从光标位置向下连续删除n行

复制和剪切
vi 中提供有一个 被复制文本的缓冲区
  • 复制 命令会将选中的文字保存在缓冲区

  • 删除 命令删除的文字会被保存在缓冲区

  • 在需要的位置, 使用 粘贴 命令可以将缓冲对的文字插入到光标所在的位置

    y(复制命令) 复制

    yy 复制一行

    d(剪切命令) 剪切

    dd 剪切一行

    p 粘贴

    vi中的文本缓冲区只有一个,如果后续做过 复制、剪切操作, 之前缓冲区中的内容会被替换.
  • vi中的 文本缓冲区 和 系统的 剪切板 不是同一个

  • 所以在其他软件中使用 Ctrl + C 复制的内容, 不能再 vi 中通过 p 命令粘贴

  • 可以在 编辑模式 下使用 鼠标右键粘贴

替换

r 替换当前字符

R 替换当前行光标后的字符

R 命令可以进入 替换模式, 替换完成后, 按下ESC , 按下 ESC 可以回到 命令模式

替换命令** 的作用就是不用进入 编辑模式, 对文件进行 轻量级的修改

查找
常规查找

/str

查找到指定内容之后, 使用 Next 查找下一个出现的位置

n:查找下一个

N:查找上一个

单词快速匹配

‘*’ 向后查找当前光标所在的单词

‘’#’’ 向前查找当前光标所在单词

查找并替换

在vi中查找和替换命令需要在 末行模式下执行

:%s///g

全局替换
  • 一次向 替换文件中的 所有出现的旧文本

  • 命令格式如下

    :%s/旧文本/新文本/g
    
可视区域替换
  • 先选中 要替换文字的 范围
  • 命令格式如下
:s/旧文本/新文本/g
确认替换

c confirm 确认

  • 如果把末尾的 g 改成 gc 在替换的时候, 会有提示! 推荐使用

  • 命令格式如下

    :%s/旧文本/新文本/gc
    
  1. y - yes 替换
  2. n - no 不替换
  3. a - all 替换所有
  4. q -quit 退出替换
  5. l - last 最后一个, 并把光标移动到行首
  6. ^E 向下滚屏
  7. ^Y 向上滚屏
插入命令

在 vi 中除了常用 i 进入编辑模式 外, 还提供了一下命令同样可以进入编辑模式

i 在当前字符前插入文本

l 在行首插入文本

a 在当前字符后添加文本

A 在行末添加文本

o 在当前行后面插入一空行

O 在当前行前面插入一空行

find 搜索

可以通过find命令 在特定目录下(包含它的后代目录) 搜索 符合条件的文件

find [路径] -name ‘*.txt’

如果省略路径, 表示在当前文件夹下查找

搜索指定目录下, 文件是 abc.txt的文件

​ 方式一:指定全目录

find /export/ -name 'abc.txt'

# 方式二: 当前目录
find . -name 'abc.txt'

# 方式三: 当前目录 可以 省略 不写
find -name 'abc.txt'
搜索指定目录下, 文件名 包含 1 的文件

find /export/ -name “1

搜索指定目录下,所有以.txt 为扩展名的文件
find /export/ -name "*.txt"
搜索指定目录下, 以数字1开头的文件
find /export -name "1*"
通过 find [path] -name "*1*" 完成根据名称搜索文件

猜你喜欢

转载自blog.csdn.net/liu_changshen/article/details/102541321