note

Shift + 3 可以搜索选中的单词的全部(*号也是同样的作用)

u 撤销 ctrl r 取消撤销 vimtutor 进入自带的教程

vim各种使用:这里

主题配置

vim插件的使用,github搜索vim-plug

i:光标前面插入; I:行首插入 a:光标后面添加; A:行末添加 a就是代表append

vim修改注释的颜色的方式:地址

0.0. vim设置

这里是一些vim常用的设置:(.vimrc里面的注释是在前面加一个"

vim ~/.vimrc

1.设置行号: set number 或者 set nu # 关闭就是 set nonu

# 将制表符扩展为空格 ,# 这个设置后,编辑python文件,缩进就可以用tab了 set expandtab

  1. 设置insert模式下Tab缩进格式(设置编辑时制表符占用空格数) set ts=4 (也就是set tabstop=4)

3.设置末行命令模式下»、«的缩进空格数 | 以及换行时的智能空格数 set shiftwidth=4 或者 set sw=4 (设置格式化时制表符占用空格数)

4.设置换行时智能缩进: set smartindent 或者 set si # 关闭就是 set nosi 不建议设置这个,设置了在写shell脚本时有一点点帮助,但是在把python、c++代码复制进去的时候,循环下面的语句每一行都会比上一行加一个tab缩进

5.把tab换成4个空格: set expandtab 禁止转换就是 set noexpandtab

6.设置启用/关闭高亮语法 syntax on / syntax off # 默认是启了的

7.设置启用/关闭搜索结果高亮 set hls / set nohls

8.设置显示标尺(光标所在的行和列) set ruler

9.大小写设置 set ic 忽略大小写 :set noic 取消忽略大小写

10. set hls 匹配项高亮显示

  1. 取消一写一行注释,回车下一行还是默认带有注释(这对复制c++文件到终端很有用) autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
    • 若是想针对c/c++类型文件禁用这个功能(默认是开启的) au FileType c,cpp setlocal comments-=:// comments+=f://

source ~/.vimrc

Tips:

这些都是默认设置了的,写一下吧:

01. vim编辑

.:重复上次的命令,这还是是对任何vim中命令都适用的,常用于删除,粘贴这一类。凡是要按多次相同命令的,都注意结合这个来使用。

语法:vim 文件名 # 如果文件不存在,就会新建

Tips: vim编辑中,如果被意外退出,就会有一个.hello.py.swap的交换文件,如果再次编辑就会出异常,这时候关掉输入法,再根据提示输入D,就能正常编辑了,上次的未保存的修改内容也没了。

02. 控制光标快速移动

03. 可视模式(注释)

可视模式的作用:选中指定文本,方便进行后续操作。

Tips:可视模式下可以和前面说的移动命令搭配起来一起使用,以便快速选中指定区域内容(去尝试一下,例如:ggVG能选中所有文本)。

04. 复制、粘贴

Tips:很多的时候是先用可视行模式去选中要复制的内容,再y一下复制。

05. 删除

​ Tips:在vim中,删除命令其实也就是剪切命令,只是没p粘贴而已,发现d删除的内容,可以通过p粘贴回来,d删除的内容也会覆盖掉y复制的内容。

06. 查找任意内容

​ 语法:在末行命令下/要查找的内容,例如/output,找到的内容就会高亮,

​ 输入N(Next)下一个,输入n上一个;

*向下查找光标所在单词,#向上查找光标所在单词 (这其实跟上面一样,记住一个就好了)。

Tips:

07. 文本替换

建议使用:==全局下带确认的替换==:

:%s/旧文本/新文本/gc 对,只是多了一个c,这样在替换时就会让我们一个个确定,(后面会有命令提示,y,n,a,q)记住这就行了

注意:使用全局替换时,,要替换的词是某个单词的一部分时,那个单词的那部分也会被替换。所以文本内容多的时候还是慎用,或用带提示的gc。

08. 编辑其他文件及分屏

在末行命令模式下,可以使用 :e 文件绝对路径 来编辑一个新的文件(其实就是不退出vim的一个编译文件切换而已) 可以使用:e .,就是用vim内置的来查看当前文件夹下的文件内容。

另存为

:w new_name.py:这样可以把当前文件另存为一个叫new_name.py的文件。(ps:这跟win不同,这还是留在原文件的编辑界面,而不是新文件的界面,相当在编辑中途保存当前内容的一个副本。)

分屏

在末行命令下分屏:

屏幕直接调换或是编辑的文件的切换: 都先ctrl+w 意思就是控制窗口的意思 然后再输入 w 那么光标就从一个文档切换到另外一个文档了; 若输入的是 r 那么就是把分屏文件左右调换或是上下调换;

ps:若要退出某一个,就在某一个的编辑界面:q

09. 代码缩进

代码缩进:

Tips:

10. 标记

标记,快速返回某一行,可以用Ctrl+o返回原来的位置。 Ctrl+o和Ctrl+i 很像浏览器上的 后退前进

m{a-z}: 标记光标所在位置,局部标记,只用于当前文件。

m{A-Z}: 标记光标所在位置,全局标记。标记之后,退出Vim, 重新启动,标记仍然有效。

`{a-z}: 移动到标记位置。

‘{a-z}: 移动到标记行的行首。

`{0-9}:回到上[2-10]次关闭vim时最后离开的位置。

: 移动到上次编辑的位置。''也可以,不过精确到列,而’‘精确到行 。如果想跳转到更老的位置,可以按C-o,跳转到更新的位置用C-i。

`”: 移动到上次离开的地方。

`.: 移动到最后改动的地方。

:marks 显示所有标记。

:delmarks a b – 删除标记a和b。

:delmarks a-c – 删除标记a、b和c。

:delmarks a c-f – 删除标记a、c、d、e、f。

:delmarks! – 删除当前缓冲区的所有标记。

:help mark-motions 查看更多关于mark的知识。

11. 多个文件比较

vim -d file1.py file2.py

12. 录制宏

这个,用得不多,放这里吧,然后直接页面搜索==录制宏==。

13.无插件版完整示例

这里。(下面的示例,本地才有,这里就没贴出来了,贴出来,Page的自动构建会因为这的解析失败而失败。)