目录

  1. 1. 前言
  2. 2. 模式
    1. 2.1. 命令模式
    2. 2.2. 编辑模式或输入模式
    3. 2.3. 末行模式
    4. 2.4. 可视化模式
  3. 3. 入门/第一章
    1. 3.1. 移动光标
    2. 3.2. 退出 vim
    3. 3.3. 文本编辑
    4. 3.4. 文件编辑
  4. 4. 第二章
    1. 4.1. 删除命令
    2. 4.2. 数字键相关
      1. 4.2.1. 使用数字移动光标
      2. 4.2.2. 使用数字来删除更多内容
      3. 4.2.3. 删除行
    3. 4.3. 撤销
  5. 5. 第三章
    1. 5.1. PUT 命令
    2. 5.2. REPLACE 命令
    3. 5.3. CHANGE 命令
  6. 6. 第四章
    1. 6.1. 光标位置与文件状态
    2. 6.2. SEARCH 命令
    3. 6.3. 查找匹配的括号
    4. 6.4. SUBSTITUTE 命令
  7. 7. 第五章
    1. 7.1. 执行外部命令
    2. 7.2. 另存为
    3. 7.3. 检索和合并文件
  8. 8. 第六章
    1. 8.1. OPEN 命令
    2. 8.2. APPEND 命令
    3. 8.3. REPLACE 模式
    4. 8.4. 复制与粘贴文本
    5. 8.5. 设置选项
  9. 9. 第七章
    1. 9.1. 帮助
    2. 9.2. 启动配置脚本
    3. 9.3. 命令补全

LOADING

第一次加载文章图片可能会花费较长时间

要不挂个梯子试试?(x

加载过慢请开启缓存 浏览器默认开启

Vim

2023/5/8 Dev
  |     |   总文章阅读量:

前言

整了块 MiPad,第一件事想着怎么安上个 linux(

但是限于安卓13杀后台的原因搞不了 vscode(后话:其实可以解除进程限制,不过学 vim 是对的

于是这里选择基于命令行的编程,也就是 vim 编辑器了

参考:

https://csdiy.wiki/%E5%BF%85%E5%AD%A6%E5%B7%A5%E5%85%B7/Vim/

https://wsdjeg.net/vim-galore-zh-cn/

接下来以 helloworld.py 为例

vim 文件名称

如果文件已存在,则直接打开

如果文件不存在,则vim编辑器会自动在内存中创建一个新文件

模式

命令模式

使用VIM编辑器时,默认处于命令模式。在该模式下可以移动光标位置,可以通过快捷键对文件内容进行复制、粘贴、删除等操作。

其他模式下ESC即可切换回命令模式(末行模式需按两下)

1683637265445

编辑模式或输入模式

在命令模式下输入小写字母a或小写字母i即可进入编辑模式,在该模式下可以对文件的内容进行编辑

1683637265442

末行模式

在命令模式下输入冒号:即可进入末行模式,可以在末行输入命令来对文件进行查找、替换、保存、退出等操作(执行完回车)

wq:保存并退出

q!:强制退出不保存

1683637265439

可视化模式

可以做一些列选操作(通过方向键选择某些列的内容,类似于Windows鼠标刷黑)


入门/第一章

多年之后重新开始补充以前的文章,算是填过去的坑,也是为了之后提高效率重新打基础

Vim 自带一个交互式的教程,可以通过终端运行以下命令打开教程:vimtutor

Vim 基于一个 vi 的克隆,支持两种运行模式:compatible 和 nocompatible。在兼容模式下运行 Vim 意味着使用 vi 的默认设置,而不是 Vim 的默认设置。务必不要在兼容模式下使用 Vim

命令模式下,假设我们没有 backspace 和方向键,那么这些命令都是极其必要的

移动光标

      ^
      k              Hint:  The h key is at the left and moves left.
< h       l >               The l key is at the right and moves right.
      j                     The j key looks like a down arrow.
      v

退出 vim

ESC 后使用 :q! 不做任何改变退出编辑器

文本编辑

x 删除当前光标的字符
i 在当前字符前插入字符
a 在当前字符后追加写入

文件编辑

vim file.txt

:wq 回车保存文件修改


第二章

删除命令

命令模式下,输入 d 后,右下角会出现 d,等待下一个字符的指令,对应如下:

可以使用 dw 来删除一个单词

使用 d$ 删除从光标处到末尾的所有字符

de 从光标处删除到当前的单词末尾


数字键相关

使用数字移动光标

2w 移动光标到光标后第二个单词的首个字母处

3e 移动光标到光标后第三个单词的最后一个字母处

0 移动光标至行首

使用数字来删除更多内容

d2w 删除当前光标位置的后两个单词

删除行

dd 删除行

2dd 删除 2 行


撤销

u 撤销

U 撤销整行修改,恢复此行至原状态

CTRL+R 重做


第三章

PUT 命令

p 可以放置先前删除的文本在光标后面

例:

---> d) Can you learn too?
---> b) Violets are blue,
---> c) Intelligence is learned,
---> a) Roses are red,

我们用 dd 删去了 d) 这一行,然后移动光标到 c) 这一行,此时按 p 即可把刚才删除的 d) 行插入到 c) 行下,即:

---> b) Violets are blue,
---> c) Intelligence is learned,
---> d) Can you learn too?
---> a) Roses are red,

REPLACE 命令

rx 可以把光标处的字符替换为 x,即输入 r 命令后,下一个输入的字符即为要替换成的字符


CHANGE 命令

ce 命令可以删除当前光标开始的单词部分,并且进入 insert 模式

例:

输入 ce 命令后

cc 命令是对整行生效

命令格式:

c    [number]   motion

motion 和前面的一样:如 w(word)、$(行尾)


第四章

光标位置与文件状态

ctrl+g 显示当前的文件名和光标所在的文件位置

此处在 490 行

输入 G 命令可以移动到文件末尾

输入 gg 命令可以移动到文件开头


SEARCH 命令

在默认模式下输入 / 后输入文本,然后<ENTER>即可搜索

再输入 n 可以搜索下一个相同短语,N 搜索上一个相同短语(反向搜索)

反向搜索短语则需要使用 ? 代替 /

ctrl+o 可以返回上一个跳转的地方,ctrl+i 可以向前搜索


查找匹配的括号

% 可以匹配每一对括号,包括大小括号方括号

方便调试程序中是否存在不匹配的括号


SUBSTITUTE 命令

输入 :s/thee/the <ENTER> 可以把该行中出现的第一个 thee 替换成 the

:s/thee/the/g 全局替换该行

:#,#s/old/new/g 此处的 # 是要替换的行的行号

:%s/old/new/g 整个文件内全局替换字符串

%s/old/new/gc 查找整个文件中所有出现的字符串


第五章

执行外部命令

输入 :! 后跟外部命令即可命令执行


另存为

w FILENAME 会将整个文件保存为指定的文件名

保存部分内容到文件:

使用 v 命令启动可视化模式,移动光标高亮选中的内容(此时输入 d 会删除选区内容)

然后输入 w TEST 执行

此时把选中部分保存到了 TEST 中,我们可以使用 :!ls 查看是否在当前目录下


检索和合并文件

:r FILENAME 在光标后插入文件内容

注:此处还可以插入外部命令的输出结果,如 :r !ls


第六章

OPEN 命令

输入 o 可以向下新建一行并进入 insert 模式

输入 O 可以向上新建一行并进入 insert 模式


APPEND 命令

可以使用 e 命令在每个单词之间跳转,然后使用 aAi 都可以进入插入模式,区别是插入的位置,A 直接在行尾插入


REPLACE 模式

R 进入 REPLACE 模式,当前光标的位置都会被替换为输入的内容


复制与粘贴文本

在 visual 模式下,对框选对部分使用 y 复制,使用 g 粘贴

yw 复制一个单词,yy 复制整行


设置选项

设置选项,使搜索或替换忽略大小写

  1. 输入 /ignore <ENTER> 搜索“ignore”。按 n 键重复几次。

  2. 输入 :set ic 设置“ic”(忽略大小写)选项。

  3. 再次按 n 键搜索“ignore”。注意,现在也找到了“Ignore”和“IGNORE”。

  4. 设置“hlsearch”和“incsearch”选项::set hls is

  5. 再次输入搜索命令,看看会发生什么:/ignore <ENTER>

  6. 要禁用忽略大小写,请输入::set noic

注意:要移除匹配项的高亮显示,请输入::nohlsearch

注意:如果只想对一个搜索命令忽略大小写,请在短语中使用 \c/ignore\c <ENTER>


第七章

帮助

Vim 拥有全面的在线帮助系统。要开始使用,请尝试以下三种方法之一:

  • 按下 <HELP> 键(如果有)
  • 按下 <F1> 键(如果有)
  • 输入 :help <ENTER>

阅读帮助窗口中的文本,了解帮助功能的使用方法。

按下 CTRL-W 可以在不同的窗口之间跳转。

输入 :q <ENTER> 关闭帮助窗口。

您可以通过向 :help 命令添加参数来查找几乎任何主题的帮助。


启动配置脚本

Vim 的功能比 Vi 多得多,但大多数功能默认情况下是禁用的,为了启用它们需要编辑 .vimrc

unix 系统使用 :e ~/.vimrc 进行编辑

配置参考: https://segmentfault.com/a/1190000047311954

set number
set tabstop=4
set mouse=a
syntax on

命令补全

使用 CTRL-D<TAB> 实现命令行补全

  1. 确保 Vim 未处于兼容模式::set nocp

  2. 查看目录中的文件::!ls:!dir

  3. 输入命令的开头::e

  4. 按下 CTRL-D,Vim 将显示以“e”开头的命令列表。

  5. 输入 d<TAB>,Vim 会将命令名称补全为 :edit

  6. 现在添加一个空格,然后输入一个现有文件名的开头::edit FIL

  7. 按下 <TAB>。Vim 会补全文件名(如果文件名是唯一的)。

注意:补全功能适用于许多命令。只需尝试按下 CTRL-D<TAB> 即可。它对 :help 命令尤其有用。