用apt包管理器的都可以用这个
git clone https://github.com/jintongxu/tmuxConfig.git
cd neovimConfig
sudo chmod +x install_ubuntu.sh
./install_ubuntu.sh
最后安装Mason的LSP,见后文。
git clone https://github.com/jintongxu/tmuxConfig.git
cd neovimConfig
sudo chmod +x install_arch.sh
./install_arch.sh
最后安装Mason的LSP,见后文。
然后进入nvimm的命令模式:Mason
,下载对应语言的LSP(代码提示)。光标移动到对应的LSP,然后按 i 下载,按 X 卸载。
当前使用的LSP:
-
clangd(c/c++)
-
cmake-language-server
-
docker-compose-language-server
-
dockerfile-language-server
-
python-lsp-server
-
yy:复制光标所在行
-
y$:复制从光标位置到本行末尾
-
nyy:n是要复制的行数,从当前行开始
-
:%y:复制整个文件
-
复制一个单词,然后在另一个地方覆盖单词 ---- yiw 要复制的单词, 移动到要替换的单词 view 替换,移动到另一个要替换的单词 viw"0p 继续替换。
-
pp:在下一行粘贴
-
p(小写):在当前行的下一行进行粘贴,并移动到新插入行的开头
-
P(大写):和小p差不多,不同的是粘贴在当前行的上一行
-
gp:粘贴在下一行,然后跳到粘贴行的下一行的开头
-
gP:与gp差不多,就是跳到粘贴行的上一行的开头
- dd:删除当前行
- ndd:删除从当前行开始的n个行
- d0:删除光标之前到行首的字符
- D:删除从当前光标位置到行尾
- x:删除当前光标位置的字符
- d + shift + g:删除光标所在行到文件末尾
- dw:从光标当前位置开始删除,直到删除到单词最后
- daw:删除光标所在的单词及后面一个空格(操作一次后,按 . 是重复daw )
- diw: 删除光标所在的单词(不带后面的一个空格)
- d2w: 删除两个单词(光标要放到第一个单词首字母)
- i:在当前光标前插入文本
- I:在当前行开始处插入文本
- o(小写):在当前行的下一行插入文本
- O(大写):在当前行的上一行插入文本
- a:在当前光标后插入文本
- A:在当前行最后插入文本
- r:对当前光标处的字符进行替换
- R:从当前光标处开始一直往后替换(如果替换后想回退按 Backspace)
- gd:光标移动到函数名,快速跳转到函数定义
- gD:光标移动到函数名,快速跳转到函数声明
- gy:光标移动到结构体,快速跳转到结构体定义
- gy: 进入光标处的文件
- gr:查看所有引用
- gp:jump back in the tag stack,绑定的
- ge:跳到上一个单词的的最后一个字母
- [ + {:快速跳转到前一个 {
- [ + (:快速跳转到前一个 (
- [ + [:快速跳转到前一个 [ 同理 ] 加上这些是快速跳转到下一个...
-
0(零):跳到行首
-
$:跳到行尾
-
gg:跳到文件头
-
shift + g:跳到文件末尾
-
fx:移动到光标右侧第一个x字符,其他字符同理
-
Fx:和上面的差不多,只是向左侧查找
-
3fx:右侧第三个x字符
-
leader + c + R:快速跳到当前文件对应的头文件(c/c++)
- w: 跳到下一单词的首字母
- b: 当光标在当前单词首字母时,跳到上一个单词首字母;当当前光标不在当前单词首字母时,跳到当前单词首字母。
- e: 类似b 跳到当前单词/下一单词的结尾
- ea: 在 当前单词/下一单词 的末尾 并进入插入模式
- ge: 跳到上一个单词的结尾
- gea: 到上一个单词的结尾 并进入插入模式
- / ____:在那个下划线输入要查找的字符
- leader + / :Grep(root dir)在当前工作目录的所有文件中搜索字符串。例如输入 return 可以找到在当前工作目录所有文件中 return 出现的位置
- za:折叠错误信息列表的的文件夹
- leader + f + r:最近修改的文件列表
- f{char}: f是查找某个字母,然后 按 ;是跳到下一个匹配。按,是跳到上一个匹配。
- %: 跳到匹配的符号处 举例:光标在{ --> }
下面的大前提是按了--leader + s:
- d:查看当前文件的错误信息列表
- D:查看当前根目录下所有文件的错误信息列表
- c:查看命令历史
- C:当前的所有插件命令及其快捷键
- s:当前文件函数定义列表
- S:当前根目录函数列表
光标移动到在左侧文件导航那
- nvim . :设置当前目录为根目录,打开neo-tree
- s:打开文件(竖直分割窗口打开新文件)
- S:打开文件(水平分割窗口打开新文件)
- a:创建文件/文件夹(文件夹以**/**结尾)
- A:创建文件夹
- I:文件信息
- R:修改名字
- .:更换文件树的根目录
- z:关闭所有文件夹的打开状态
- t:在当前窗口打开文件夹,并且关闭左方导航栏
- ]b:打开了多个文件,跳到当前文件的右边文件光标位置
- [b:和上一个差不多,只是跳到左边的文件
- D:在当前根目录及其子目录寻找文件夹
- /:在当前根目录及其子目录中寻找文件
- q:关闭当前左边导航
大前提是已经按了--leader + b。
- d:关闭当前的文件
- D:强制关闭当前的文件
- o:关闭除当前文件其他所有打开的文件
- e:左边列表显示当前所有打开的文件列表
- l:关闭当前文件左边的所有文件
- r:关闭当前文件右边的所有文件
- p:将当前文件固定到开头
Comment.nvim插件的默认快捷方式。
- gc2j:这是个例子,就是注释当前行和当前行下面的2行;也可以及gc2k.....这里的注释是单行注释,在c中是
//
- gcc:注释当前行j
- gb2j:这也是个例子,和gc2j差不多,只是向上。这里是块注释,在c中是
/* */
- gco:在下面创建一个新行,开头会有注释符号
- gcO:在上面创建一个新行,开头会有注释符号
- gcA:在行尾添加注释
- gcw:注释单词
- gb%:光标移动到左括号或右括号,然后用这个可以注释括号和括号内的语句
- vgU: 选中的范围大写
- vgu: 选中的返回小写
- guw: 转换单词小写(光标移动到单词首字母)
- guu: 将当前行转变为小写
- gUU: 将当前行转变为大写
- ]b:打开了多个文件,跳到当前文件的右边文件光标位置
- [b:和上一个差不多,只是跳到左边的文件
- :保存文件
- fn:创建新文件
- ft:Terminal命令 (root dir)
- fT:Terminal命令 (cwd)
- :Hide Terminal
- :file filename:将当前文件名改为filename
- leader + c + r:快速修改函数名
- ==:缩进当前行
- 2==:从当前行开始缩进两行
- u:撤销操作
- ctrl + r:撤销撤销操作
- mv: 显示当前代码函数大纲
- mc: 关闭当前代码函数大纲
尽量使用右边的,例如) } 这样括号和单词间不会有空格
-
ysw + " / ( / {:光标移动到单词的一个字母,快速给这个单词增加""或者()。或者v选择要括的区域
-
ysiw + ".. 给当前单词增加
-
yss + "... 整行增加
-
ys$ + ".. 当前位置到行尾增加
-
ds + " ( { :删除最近的一套"" () {}
-
cs + 旧的包围的("" ())+ 新的包围的:可以替换括号,"" --> ()
-
csf:快速修改函数调用的调用函数名. test() --> haha()
Old text Command New text
surr*ound_words ysiw) (surround_words)
*make strings ys$" "make strings"
[delete ar*ound me!] ds] delete around me!
remove <b>HTML t*ags</b> dst remove HTML tags
'change quot*es' cs'" "change quotes"
<b>or tag* types</b> csth1<CR> <h1>or tag types</h1>
delete(functi*on calls) dsf function calls
- F5 :run
- F6 : continue 到下一个断点
- F7 : finish
- F8 : next 单步调试,不进入函数体
- F10 : step 单步调试,进入函数
- ctrl-b : 向上翻一页
- ctrl-f : 向下翻一页
- info b:显示所有断点
- b fn1 if a>b:条件断点设置
- break func(break缩写为b):在函数func()的入口处设置断点,如:break cb_button
- delete n:删除n号断点(info b中的断点序号)
- delete breakpoints:删除所有断点
- disable n:暂停使用n号断点
- enable n:开启n号断点
-
print 表达式:简记为 p ,其中“表达式”可以是任何当前正在被测试程序的有效表达式,比如当前正在调试C语言的程序,那么“表达式”可以是任何C语言的有效表达式,包括数字,变量甚至是函数调用。
-
print a:将显示整数 a 的值
-
print ++a:将把 a 中的值加1,并显示出来
-
print name:将显示字符串 name 的值
-
print gdb_test(22):将以整数22作为参数调用 gdb_test() 函数
-
print gdb_test(a):将以变量 a 作为参数调用 gdb_test() 函数
-
display 表达式:在单步运行时将非常有用,使用display命令设置一个表达式后,它将在每次单步进行指令后,紧接着输出被设置的表达式及值。如: display a
-
watch 表达式:设置一个监视点,一旦被监视的“表达式”的值改变,gdb将强行终止正在被调试的程序。如: watch a
-
whatis :查询变量或函数
-
info function: 查询函数
-
扩展info locals: 显示当前堆栈页的所有变量
- where/bt:当前运行的堆栈列表;
- bt backtrace: 显示当前调用堆栈
- set args: 参数:指定运行时的参数
- show args:查看设置好的参数
- info program: 来查看程序的是否在运行,进程号,被暂停的原因。
- list 函数名:将显示“函数名”所在函数的源代码,如:list main
- a:add所有修改
- 空格:add单个修改
- 1/2/3/4:在窗口间跳转
- c:commit
- P(大写):push