vim 结束了

This commit is contained in:
法然
2022-10-26 20:38:25 +08:00
parent ab828a4314
commit c201647653
3 changed files with 38 additions and 106 deletions

BIN
.test.log.swp Normal file

Binary file not shown.

View File

@@ -96,6 +96,9 @@ nG |n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到
|:1,$s/word1/word2/g 或 :%s/word1/word2/g |从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 (常用)|
|:1,$s/word1/word2/gc 或 :%s/word1/word2/gc |从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)|
1234
1234
1234
### 删除、复制与贴上
|操作|效果|
|-|-|
@@ -111,7 +114,7 @@ nG |n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到
|nyy| n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)|
|y1G| 复制游标所在行到第一行的所有数据|
|yG| 复制游标所在行到最后一行的所有数据|
|y0| 复制光标所在的那个字符到该行行首的所有数据|
符到该行行首的所有数据|
|y$| 复制光标所在的那个字符到该行行尾的所有数据|
|p, P| p 为将已复制的数据在光标下一行贴上P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)|
|J| 将光标所在行与下一行的数据结合成同一行|
@@ -155,6 +158,7 @@ u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做
|:n1,n2 w [filename]| 将 n1 到 n2 的内容储存成 filename 这个档案。|
|:! command| 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!|
### vim 环境的变更
|操作|效果|
|-|-|
@@ -163,4 +167,36 @@ u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做
特别注意,在 vi/vim 中,数字是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。
举例来说,要删除 50 行,则是用 『50dd』 对吧! 数字加在动作之前,如我要向下移动 20 行呢那就是『20j』或者是『20↓』即可。
举例来说,要删除 50 行,则是用 『50dd』 对吧! 数字加在动作之前,如我要向下移动 20 行呢那就是『20j』或者是『20↓』即可。
### 我自己的总结
移动操作
* hjkl 字母定位
* web 单词定位
* +- ^0$行定位
* () 段定位
* HLM G gg 页定位
* Ctrl+fbdu屏幕定位
* m`标记跳转
* : 行号跳转
* 数字+移动命令=重复多次移动
搜索操作
* f行内搜索
* t字符定位
* /?n搜索和查询
* :! command执行额外命令
* u undo复原上一个动作
* . redo重新执行上一个动作
修改操作
* 插入iao
* 替代r
* 修改c
删除复制黏贴
* nx xn nX Xn
* dd ndd ddn d1G dG d$ d0 d^
* yy nyy yyn y1G yG y$ y0 y^
* p

View File

@@ -1,104 +0,0 @@
vi
===
功能强大的纯文本编辑器
## 补充说明
**vi命令** 是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim它是vi的增强版vi Improved与vi编辑器完全兼容而且实现了很多增强功能。
vi编辑器支持编辑模式和命令模式编辑模式下可以完成文本的编辑功能命令模式下可以完成对文件的操作命令要正确使用vi编辑器就必须熟练掌握着两种模式的切换。默认情况下打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。
vi编辑器提供了丰富的内置命令有些内置命令使用键盘组合键即可完成有些内置命令则需要以冒号“”开头输入。常用内置命令如下
```shell
Ctrl+u向文件首翻半屏
Ctrl+d向文件尾翻半屏
Ctrl+f向文件尾翻一屏
Ctrl+b向文件首翻一屏
Esc从编辑模式切换到命令模式
ZZ命令模式下保存当前文件所做的修改后退出vi
:行号:光标跳转到指定行的行首;
:$:光标跳转到最后一行的行首;
x或X删除一个字符x删除光标后的而X删除光标前的
D删除从当前光标到光标所在行尾的全部字符
dd删除光标行正行内容
ndd删除当前行及其后n-1行
nyy将当前行及其下n行的内容保存到寄存器其中为一个字母n为一个数字
p粘贴文本操作用于将缓存区的内容粘贴到当前光标所在位置的下方
P粘贴文本操作用于将缓存区的内容粘贴到当前光标所在位置的上方
/字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;
?字符串:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;
abs/F/T替换文本操作用于在第a行到第b行之间将F字符串换成T字符串。其中“s/”表示进行替换操作;
a在当前字符后添加文本
A在行末添加文本
i在当前字符前插入文本
I在行首插入文本
o在当前行后面插入一空行
O在当前行前面插入一空行
:wq在命令模式下执行存盘退出操作
:w在命令模式下执行存盘操作
:w在命令模式下执行强制存盘操作
:q在命令模式下执行退出vi操作
:q在命令模式下执行强制退出vi操作
:e文件名在命令模式下打开并编辑指定名称的文件
:n在命令模式下如果同时打开多个文件则继续编辑下一个文件
:f在命令模式下用于显示当前的文件名、光标所在行的行号以及显示比例
:set number在命令模式下用于在最左端显示行号
:set nonumber在命令模式下用于在最左端不显示行号
```
### 语法
```shell
vi(选项)(参数)
```
### 选项
```shell
+<行号>:从指定行号的行开始显示文本内容;
-b以二进制模式打开文件用于编辑二进制文件和可执行文件
-c<指令>:在完成对第一个文件编辑任务后,执行给出的指令;
-d以diff模式打开文件当多个文件编辑时显示文件差异部分
-l使用lisp模式打开“lisp”和“showmatch”
-m取消写文件功能重设“write”选项
-M关闭修改功能
-n不实用缓存功能
-o<文件数目>:指定同时打开指定数目的文件;
-R以只读方式打开文件
-s安静模式不现实指令的任何错误信息。
```
### 参数
文件列表:指定要编辑的文件列表。多个文件之间使用空格分隔开。
## 知识扩展
vi编辑器有三种工作方式命令方式、输入方式和ex转义方式。通过相应的命令或操作在这三种工作方式之间可以进行转换。
**命令方式**
在Shell提示符后输入命令vi进入vi编辑器并处于vi的命令方式。此时从键盘上输入的任何字符都被作为编辑命令来解释例如a(append表示附加命令i(insert表示插入命令x表示删除字符命令等。如果输入的字符不是vi的合法命令则机器发出“报警声”光标不移动。另外在命令方式下输入的字符即vi命令并不在屏幕上显示出来例如输入i屏幕上并无变化但通过执行i命令编辑器的工作方式却发生变化由命令方式变为输入方式。
**输入方式**
通过输入vi的插入命令i、附加命令a、打开命令o、替换命令s、修改命令(c或取代命令r可以从命令方式进入输入方式。在输入方式下从键盘上输入的所有字符都被插入到正在编辑的缓冲区中被当做该文件的正文。进入输入方式后输入的可见字符都在屏幕上显示出来而编辑命令不再起作用仅作为普通字母出现。例如在命令方式下输入字母i进到输入方式然后再输入i就在屏幕上相应光标处添加一个字母i。
由输入方式回到命令方式的办法是按下Esc键。如果已在命令方式下那么按下Esc键就会发出“嘟嘟”声。为了确保用户想执行的vi命令是在命令方式下输入的不妨多按几下Esc键听到嘟声后再输入命令。
**ex转义方式**
vi和ex编辑器的功能是相同的二者的主要区别是用户界面。在vi中命令通常是单个字母如a,x,r等。而在ex中命令是以Enter键结束的命令行。vi有一个专门的“转义”命令可访问很多面向行的ex命令。为使用ex转义方式可输入一个冒号:。作为ex命令提示符冒号出现在状态行通常在屏幕最下一行。按下中断键通常是Del键可终止正在执行的命令。多数文件管理命令都是在ex转义方式下执行的例如读取文件把编辑缓冲区的内容写到文件中等。转义命令执行后自动回到命令方式。例如
```shell
:1,$s/I/i/g 按Enter键
```
则从文件第一行至文件末尾($将大写I全部替换成小写i。vi编辑器的三种工作方式之间的转换如图所示。
!vi