1837 words
9 minutes
vim nvim helix cmds
Vim的相关操作
Vim的操作模式:
- 正常模式:在文本中四处移动光标进行修改
- 插入模式:插入文本
- 替换模式:替换文本
- 可视化(一般,行,块)模式:选中文本块
- 命令模式:用于执行命令
在默认设置下,Vim会在左下角显示当前的模式。Vim启动时的默认模式是正常模式。
你可以按下<ESC>从任何其它模式返回正常模式。在正常模式,键入i进入插入模式,R进入替换模式,v进入可视(一般)模式,V进入可视(行)模式,^v进入可视(块)模式,:进入命令模式。
缓存,标签页,窗口
Vim会维护一系列打开的文件,成为“缓存”。一个Vim会话包含一系列标签页,每个标签页包含一系列窗口(分割面板)。每个窗口显示一个缓存。跟网页浏览器等其它程序不一样,缓存和窗口不是一一对应的关系;窗口只是视角。一个缓存可以在多个窗口打开,甚至在同一个标签页内的多个窗口打开。
- 组合键
^w+s会上下分割当前打开的文件。 :sp <filename>会上下分割当前文件和新打开的文件- 组合键
^w+v会左右分割当前打开的文件。 :vsp <filename>会左右分割当前打开的文件和新打开的文件^w+h将当前光标定位到左边的屏幕。^w+l将当前光标定位到右边的屏幕。^w+j将当前光标移动到下面的屏幕。^w+k将当前光标移动到上面的屏幕。^w+H将当前的分屏移动到左边。^w+L将当前的分屏移动到右边。^w+J将当前的分屏移动到下边。^w+K将当前的分屏移动到上边。^w+c关闭当前的分屏。^w+q关闭当前的分屏,如果是最后一个则将退出Vim。
Vim的退出
:w保存当前对文件的修改,但是不退出文件:w!强制保存但是不退出文件:w <file>保存当前的文件修改到文件当中。 :q!退出文件,对文件的修改不做保存。qa!退出所有的文件,并且不保存。:wq保存并退出。:e <file>打开文件。 :e!放弃对文件的所有修改,恢复文件到上次保存的位置。:saveas <file>另存为:bn和:bp当打开多个文件的时候可以进行上一个文件或者下一个文件的切换。
Vim的插入
i是在光标所在的字符之前插入需要录入的文本。I是在光标所在的行首插入需要录入的文本。a是在光标所在的字符之后插入需要录入的文本。A是在光标所在的行末插入需要录入的文本。s是删除光标所在处的字符然后插入文本。S是删除光标所在行,在当前行的行首插入文本。
Vim的命令模式
行号
:set nu显示行号。:set nonu不显示行号。:<n>定位到第行 :<n>,<m><cmd>对第n到第m行执行操作,如删除就是:<n>,<m>d,复制就是<n>,<m>y
关键字查找
/{目标字符串}查找文本中匹配的目标字符串,查到以后按n会去寻找下一个匹配,N会去寻找上一个匹配。
删除
- 在命令模式下
dd会删除本行。 :<n1>,<n2>d从第行一直删除到 行(两边都闭区间)
Vim处理文本替换
:{作用范围}s/{目标}/{替换}/{替换的标志},其中作用范围分为当前行、全文、选区等。- 例如:
:s/zempty/handsome/g将会把当前光标所在行的zempty替换成handsome%s/zempty/handsome/g将会把全文中的zempty替换成handsome<n1>,<n2>s/zempty/handsome/g把行到 行的所有zempty替换为handsome。
- 替换标志中,
g代表global全局替换,空替换只替换从光标位置开始的第一次,i表示大小写不敏感,I表示大小写敏感,c表示需要确认。
Vim执行Linux命令
:!<command> 将执行
Vim的正常模式
h,j,k,l分别代表左右下上。- 在当前行上移动光标
0移动到行头^移动到本行的第一个不是blank的字符$移动到行尾g_移动到本行最后一个不是blank字符的位置w光标移动到下一个单词的开头e光标移动到下一个单词的结尾f<c>光标移动到本行下一个为的字符处
- 跨行移动光标
nG光标定位到第N行行首gg光标定位到第一行的行首G光标定位到最后一行的行首H光标定位到最后一行的行首
Vim的基础文本操作
- 删除
d就是删除的意思dw删除一个单词d<n>w删除个单词 dd删除整行<n>dd删除光标处开始的行 d$删除光标到本行的借位dH删除屏幕显示的第一行文本到光标所在dG删除光标所在行到文本结束
- 复制
y就是复制的意思yw复制一个单词yy复制整行
- 粘贴
p就是粘贴的意思,在光标后粘贴P在光标前粘贴
- 撤销
u撤销刚才的操作^r恢复撤销操作
- 删除字符串操作和替换
x删除光标当前所在的字符r替换光标当前所在的字符
neovim+LazyVim
modal editing
从normal进入insert模式
i: 在当前光标左边插入字符a: 在当前光标右边插入字符I: 在当前光标所在行的行首插入字符A: 在当前光标所在行的行末插入字符o: 在当前行所在的下一行插入字符O: 在当前行所在的上一行插入字符
进入visual模式
visual模式是为了一次性选中多行的
command模式
按下冒号就进入了命令模式。在命令模式中,按下命令的开头字母之后,按tab会出现补全。当有多个补全候选的时候,继续按tab向下选择,shift+tab向上选择
z模式
z模式本质上就是跳转模式的一个若干快捷键的集合。比如zt就是把当前光标所在行移动到屏幕顶部。zb就是把当前光标所在行移动到屏幕底部。zz是把当前光标所在行移动到屏幕中间。
词间移动
e: 移动到下一个单词的最后一个字母w: 移动到下一个单词的第一个字母b: 移动到前一个单词的第一个字母- 以上三个指令都可以先带上数字,一次性跳过多个单词
Helix-editor
motivation
在香橙派上安装了lazyvim以后,发现lazyvim的LSP配置有问题。我明明是arm架构,却被下了一个不适配的clangd。
刚好了解到helix,是用rust编写,并且是toml的配置文件,非常适合。哪怕是源码编译也具有很高的可复现性。但是快捷键和vim系不太一样。
vim nvim helix cmds
https://blog.cassiusblack.top/posts/vim-nvim-helix-cmds/