前言
整了块 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即可切换回命令模式(末行模式需按两下)

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

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

可视化模式
可以做一些列选操作(通过方向键选择某些列的内容,类似于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 命令在每个单词之间跳转,然后使用 a 或 A 或 i 都可以进入插入模式,区别是插入的位置,A 直接在行尾插入
REPLACE 模式
R 进入 REPLACE 模式,当前光标的位置都会被替换为输入的内容
复制与粘贴文本
在 visual 模式下,对框选对部分使用 y 复制,使用 g 粘贴
yw 复制一个单词,yy 复制整行
设置选项
设置选项,使搜索或替换忽略大小写
输入
/ignore <ENTER>搜索“ignore”。按 n 键重复几次。输入
:set ic设置“ic”(忽略大小写)选项。再次按
n键搜索“ignore”。注意,现在也找到了“Ignore”和“IGNORE”。设置“hlsearch”和“incsearch”选项:
:set hls is再次输入搜索命令,看看会发生什么:
/ignore <ENTER>要禁用忽略大小写,请输入:
: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> 实现命令行补全
确保 Vim 未处于兼容模式:
:set nocp查看目录中的文件:
:!ls或:!dir输入命令的开头:
:e按下
CTRL-D,Vim 将显示以“e”开头的命令列表。输入
d<TAB>,Vim 会将命令名称补全为:edit。现在添加一个空格,然后输入一个现有文件名的开头:
:edit FIL按下
<TAB>。Vim 会补全文件名(如果文件名是唯一的)。
注意:补全功能适用于许多命令。只需尝试按下 CTRL-D 和 <TAB> 即可。它对 :help 命令尤其有用。