Vim入门

ctrl+c = esc

V J L的作用

w b

W

e B

ge

f,再按想匹配的字符,会跳到当前行匹配的位置。;会匹配下一个

i光标前插入

a光标后插入

s 替换,把光标位置删掉,变成插入模式

跳到行开头编辑,大写的i

快速到行尾编辑,A

S直接替换整行

新起一行 a然后回车。更快的方式,是o

O向上新起一行

阮一峰-Vim 配置入门

操作多行,移动到下方

清空选中的所有内容

【第一期】Vim基础&高级技巧教学切合实际工作

【第二期】Vim基础&高级技巧教学切合实际工作-基础知识、基础操作

【第三期】Vim基础&高级技巧教学切合实际工作-更多常用指令进阶操作

【第四期】vim高级操作技巧-节省编码时间提高编码效率

VIM为什么好用?超实用的10个vim小技巧分享

vim经过各种配置之后,也就勉强能有近似IDE的水准,所以一般其实没必要使用…

更多是因为在服务器环境,没有IDE,所以…

不一定使用原始的vim工具,但vim有一些操作是很不错的,这些可以借鉴(印象深刻的有: 从前n行中搜索; 以及某列如str1,str1,str1,使得其自增)

从前n行中搜索;

在 Vim 中从前 500 行中检索关键字 “shuang”:

在 Vim 中打开文件后,你可以使用以下的命令来执行这个检索:

1
:1,500g/shuang/

:1,500g 命令会在第 1 行到第 500 行之间进行搜索。/shuang/ 是你要查找的关键字。


某列如str1,str1,str1,使得其自增

我有一段文本,100行,均为str1,如何使用vim使得其数字自增,即使其变为str1,str3,str3…str100。 不要用宏

你可以通过 Vim 的 :normal 命令以及 Vim script 的 for 循环来实现这个功能。下面是具体的步骤:

  1. 打开你的文本文件。

  2. 在 Vim 的命令模式中,敲入以下命令:

1
:let i=1 | g/str1/ s//\='str'.i/ | let i=i+1

这个命令的解释如下:

  • let i=1:这个命令初始化一个变量 i,并设置其值为1。

  • g/str1/:这是一个全局搜索命令,它会在整个文本中搜索 ‘str1’。

  • s//\='str'.i/:这是一个替换命令,它会把搜索到的 ‘str1’ 替换为 ‘str’ 后面跟着 i 的值。注意这里我们使用 \= 来执行表达式的替换。

  • let i=i+1:这个命令增加 i 的值。

这个命令会遍历文本中的每一行,每找到一次 ‘str1’,就把它替换为 ‘str’ 后面跟着当前的 i 值,然后 i 的值就会增加1。这样,你就得到了 ‘str1’,’str2’,’str3’,…,’str100’。

比较知名的vim配置:
https://github.com/spf13/spf13-vim


所以不如直接vscode或goland安装vim插件

设置使用 相对行号,即以当前光标所在行为起点,向上向下编号

相对行号可以直接:set rnu





ddp: 两行代码位置互换

guiw: 将某部分变为大写



宏:

先录制,再执行…

有点像自动化软件

比如有这样的json,很长。发现没加id字段,这个字段是递增的。那就可以录制一下,写上“id”:1,再“id”:2,然后就录制完成了…

输入xx,执行n次




vim选中全部行,在前面加一个 -


你可以使用 Vim 编辑器的以下步骤在选中的所有行的前面添加一个连字符 -

  1. 进入命令模式(按 Esc 键确保你在普通模式)。

  2. 使用移动命令或鼠标来选择你想要添加 - 的所有行。例如,你可以使用 V 键来进入可视模式,然后使用上下箭头键或 jk 键选择行,或者你也可以使用 Shift 键加鼠标选择多行。

  3. 选中所有行后,按 : 进入命令行模式,并且你会看到底部命令行提示符显示为 :'<,'>,这表示你正在处理选中的区域。

  4. 在命令行中输入以下命令并按回车键:

    1
    :'<,'>s/^/-/

    这个命令的含义是:在选中的行中('<,'>),将行首(^)的位置替换为 -

  5. 所有选中的行现在都在行首添加了 -

这个操作会在选中的每一行的开头添加一个 -,并且保留了你的选中状态。如果你想保存更改,可以输入 :w 来保存文件,然后输入 :q 退出 Vim。

‘<,’>s/^/-/这都什么意思?

'<,'>s/^/-/ 是 Vim 中执行替换操作时的标记和命令。

  1. '<,'>:这部分表示你正在处理的范围,它指示 Vim 在选中的文本范围内执行命令。当你在可视模式下选择一些文本时,Vim 会自动在命令行中添加 '<,'>,以表示当前操作的是选中的文本。这个范围是 Vim 的一种特殊标记方式。

  2. s/^/-/:这部分是实际的替换命令。它使用正则表达式进行匹配和替换:

    • s 表示替换操作。
    • ^ 是一个正则表达式模式,它匹配每一行的开头位置。
    • - 是要替换的内容,这里是在每一行的开头添加的连字符。

所以,'<,'>s/^/-/ 的完整含义是在选中的文本范围内,将每一行的开头位置(^)替换为 -,从而在每一行的开头添加一个连字符 -

在 Vim 中,'<,'>s/^/-/ 是一个替换命令,用于在选定范围内的每一行的开头添加一个连字符(-)。下面是这个命令的详细解释:

  • '<,'>:这是一个范围选择,表示最后一次高亮选定的文本块的开始和结束行。当你在 Vim 的可视模式(Visual mode)中选定一块文本后,'<'> 分别代表这块文本的开始行和结束行。

  • s:这是 Vim 中的替换命令(Substitute)的简写。

  • /^/-/:这是替换命令的参数。在这里,^ 是一个正则表达式,表示行的开始。- 是你想要插入的字符。所以,/^/-/ 的意思是:在每一行的开始(^)插入一个连字符(-)。



vim移动到行尾,行头


在 Vim 中,移动到行尾和行头的快捷键如下:

移动到行尾:

  • $ - 移动到本行的行尾
  • g_ - 移动到本行的最后一个非空白字符

移动到行头:

  • 0 - 移动到本行的行头
  • ^ - 移动到本行的第一个非空白字符

示例:

1
2
3
4
5
6
7
8
9
10
11
// 移动到行尾
$

// 移动到最后一个字符
g_

// 移动到行头
0

// 移动到第一个字符
^

另外,还可以使用 A 在行尾插入,I 在行头插入。

这些快捷键可以极大的提高在 Vim 中的编辑效率,值得记忆。


https://blog.csdn.net/yiqishangxuewu/article/details/105647272