vim配置及使用阶段二

yuanheci 2023年10月19日 216次浏览

vim字符串替换操作:
https://blog.csdn.net/weixin_43971252/article/details/123218082

安装NERDTree插件

wget http://www.vim.org/scripts/download_script.php?src_id=17123 -O nerdtree.zip
unzip nerdtree.zip
mkdir -p ~/.vim/{plugin,doc}
cp plugin/NERD_tree.vim ~/.vim/plugin/
cp doc/NERD_tree.txt ~/.vim/doc/

暂时退出vim,回到终端
方法1:!ls 等类型

方法2: :sh 表示新建一个shell,然后可以进行编译等操作。想要返回的时候直接通过exit或者ctrl+d 杀死那个shell就能回到vim了。

vim中打开了多个窗口例如NERDTree和内置终端,
可用ctrl+w作为前缀键,然后h, j, k, l移动选择不同位置即可。

i:在光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入
s:删除光标所在的字符并开始插入

I:在光标所在行的行首开始插入 如果行首有空格则在空格之后插入
A:在光标所在你行的行尾开始插入
O:在光标所在行的上面另起一行开始插入
S:删除光标所在行并开始插入

r: 替换一个单词
R:替换到手动取消为止


ctags
ctags -R

只需要在工程目录顶层生成tags文件。当在子目录某文件内需要跳转时,vim 会逐级向上查找tags文件
需要以下配置(后面的 ; 不能省略):
set tags=tags;
set autochdir (用于自动切换工作目录)


自带的文件浏览器Netrw
:E 当前窗口打开目录
:Vex 竖直分割


:!ls查看当前文件目录下的其它文件。
:f查看文件名

ctrl+]跳转定义处
ctrl+t返回
ctrl+o

有多个定义如何解决?
:ts命令可以列出所有匹配选项选择序号跳转
通过映射map <c-]> g<c-]>


zz:将当前行移动到屏幕中间

屏幕级移动:
H 移动光标到屏幕的第一行

M 移动光标到屏幕的中间一行

L 移动光标到屏幕的最后一行


单词级移动
w 或 W 移动到下一单词的开头

b 或 B 移动到上一单词的开头

e 或 E 移动到光标所在单词的末尾


确定操作单位后,需要确定命令重复执行的次数。Vim光标移动命令的操作对象范围计算公式为: 操作范围 = 操作次数 x 操作单位

例如:5h命令表示左移5个字符,8w命令右移8个单词

%: 括号匹配


标记:
https://www.jianshu.com/p/37538ec6d8f7
mark {a-z},给当前文档打标记,通过 '+[标记]跳转过去
注释标记方式是按下m+{a-z},那么该行就被标记了。

:marks: 显示所有mark
:delm {marks}:删除标记

还有一些vim内置的标记:
0~9: 最近打开的文件
image-1714839999307


newtab多标签之间的切换:
向右gt,向左gT


复制粘贴删除
复制行 yy 复制n行 nyy
粘贴行 p
删除行 dd 删除n行 ndd
删除字 dw 复制字 yw

  可视块选择复制:
         进入可视化模式 v,V,Ctrl-v
         可视化模式下,方向键选择块
         按y复制选择的块

多行注释
多行注释按键操作:
注释:Ctrl-v 进入列编辑模式,向下或向上移动光标,把需要注释的行的开头标记起来,然后按大写的I,再插入注释符比如"#",按Esc,就会全部注释了。
删除:Ctrl-v 进入列编辑模式,向下或向上移动光标,选中注释部分,按d,就会删除注释符号。


‘*’ 匹配当前光标所在的字符串
和find一样,n和N