我觉得:对于程序编辑器,需求驱动。找到自己想要的需求,看如何实现,不必太花哨而迷失

主要需求参考https://github.com/yangyangwithgnu/use_vim_as_ide#3 作者:老亨  来源:CSDN

安装spacevim:自己百度

安装neovim:参考https://blog.csdn.net/henryhu712/article/details/80458753

首先,如果没有安装PPA的话,先用下面的命令来安装:

sudo apt-get install software-properties-common
如果已经安装,用上面的命令也没有问题,会提示已经已有最新版本,不会重复安装。

PPA - Personal Package Archive,个人包档案

然后用下面的命令来安装 Neovim

sudo apt-add-repository ppa:neovim-ppa/stable
sudo apt-get update
sudo apt-get install neovim

这样,vim和nvim的配置文件等都软链接到~/.SpaceVim文件夹中。我们可以该文件夹拷贝复制,就可以使得当前的vim配置适用于另一台机器和备份等

安装了spcavim后,编辑器本身就较为友好来。新的插件安装在/.SpaceVim/plugged/

安装插件就是对对应的github地址中拷贝,复制在该目录中

我们可以根据自己的需求 修改源代码xxx.Vim

3.1 主题风格

通过spaceVim修改 默认的就很不错

https://spacevim.org/cn/documentation/#%E9%A2%9C%E8%89%B2%E4%B8%BB%E9%A2%98

字体缩放

最好是ctrl+鼠标中键盘缩放字体:目前不知道怎么实现

终端中启动vim nvim,只能通过设置终端的字体来改变:<ctrl+shift>+  放大字体   <ctrl>-缩小字体

3  营造专注氛围

F11全屏

" 总是显示状态栏
set laststatus=2
" 显示光标当前位置
set ruler
" 开启行号显示
set number
" 高亮显示当前行/列
set cursorline
set cursorcolumn
" 高亮显示搜索结果
set hlsearch
" 禁止光标闪烁
set gcr=a:block-blinkon0
" 禁止显示滚动条
set guioptions-=l
set guioptions-=L
set guioptions-=r
set guioptions-=R
" 禁止显示菜单和工具条
set guioptions-=m
set guioptions-=T

4 代码分析

语法高亮:nvim spaceVim自带

代码自动缩进:nvim spaceVim基本算是自带

代码折叠

" 基于缩进或语法进行代码折叠
"set foldmethod=indent
set foldmethod=syntax
" 启动 vim 时关闭折叠代码
set nofoldenable

操作:za,打开或关闭当前折叠;zM,关闭所有折叠;zR,打开所有折叠。

在源文件和头文件间切换:sw

安装插件vim-fswitch(https://github.com/derekwyatt/vim-fswitch )

然后加入:

" *.cpp 和 *.h 间切换
nmap <silent> <Leader>sw :FSHere<cr>

其中Leaer是前缀键\

加书签:

安装vim-plug插件管理插件:https://github.com/junegunn/vim-plug

curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

然后nvim后 :PluginIsnatall

书签管理插件vim-signature:https://github.com/kshenoy/vim-signature

最常见用法:m+大小写字母:设置书签

m, 快捷键,自动帮你选定下一个可用独立书签名

`书签:跳转至一开始设置的书签

]`  [`跳转到前后的书签

m/  显示所有的书签

编辑:

4.6 标识符列表

4.7查找

在当前文件中查找:

/字符    和  查找光标所在字符*

使用n N向下向上搜索

在整个工程中查找:

安装插件:

ctrlsf.vim(https://github.com/dyng/ctrlsf.vim)

ack.vim(https://github.com/mileszs/ack.vim )

安装Ubunt的ack程序:

sudo apt install ack-grep

设置快捷键

nnoremap <Leader>sp :CtrlSF<CR>

用法:

在想要查找的单词上\sp,其中sp是指search in project。查找结果将以子窗口在左侧呈现,p键则在右侧显示,Enter则表示找到哦啊了想要的,q退出

快速替换和精准替换

5 代码开发

注释一定要方便:

又space vim提供(comment line)

spc c l comment/uncomment current line 注释/取消注释当前行,结合.可以实现多行的注释和取消注释

编程模板:

需要两个插件,一个提供模板补全功能,一个提供模板,可以自定义模板

https://github.com/honza/vim-snippets

https://github.com/SirVer/ultisnips

使用:

在进行模板补全时,你是先键入模板名(如,if),接着键入补全快捷键(默认 <tab>),然后 UltiSnips 根据你键入的模板名在代码模板文件中搜索匹配的“模板名-模板”,找到对应模板后,将模板在光标当前位置展开 。${1}、${2} 是 <tab> 跳转的先后顺序,即tab跳到下一补全位置,shift+tab跳到上一补全位置(这个还未实现)

5.4 由接口快速生成实现框架

下载插件:

https://github.com/derekwyatt/vim-protodef

然后进入插件所在目录,修改插件的源码(把快捷键PP修改为快捷键GD,把快捷键PN修改为GN,\GD用来生成带命名空间的Generate definetion,\GN用来生成不带命名空间的):

这样,在源文件中便可以\GN  \GD来生成定义

5.5 库信息参考

在vim配置文件中打开man:

" 启用:Man命令查看各类man信息
source $VIMRUNTIME/ftplugin/man.vim

这样就可以使用:Man 3  xxx来查看xx的帮助文档

c++的man帮助文档可能需要单独装(可以通过man std::cout)查看系统是否安装了c++的帮助文档

安装方法:https://github.com/jeaye/stdman

在线参考,C++ 推荐 http://www.cplusplus.com/reference/ 、http://en.cppreference.com/w/Cppreference:Archives ,前者范例多、后者更新勤;UNIX 推荐 http://pubs.opengroup.org/onlinepubs/9699919799/functions/contents.html 、http://man7.org/linux/man-pages/dir_all_alphabetic.html

6.工程管理

必要功能:

打开工程目录关闭工程目录 F3

展开工程目录等 h l

在新的标签页打开文件 l

进入工程目录或上一目录 h l

自动匹配后打开当前工程目录下的某个文件(即能够搜索当前目录下的所有文件):使用:find 命令

F3是打开关闭文件树的功能,

6.2 多文档编辑

spaceVim 的支持也很好

同一界面下的多个窗口:切换TAB   关闭:q  切换到具体哪一个:spac+序号

TAB操作:当只有1个TAB时,标签页显示当前打开的buffers  当打开多个TAB时,标签显示各个TAB

标签栏上TAB的切换:鼠标点击 或者\+序号

vim中buffers的操作很奇怪 ,每个打开的文件在vim中都有一个buffer,但是却很难可视化等

5.vim能quickfix快速定义编译错误

https://blog.easwy.com/archives/advanced-vim-skills-quickfix-mode/

6 实时的语法分析

尽可能保持vim的编辑和移动按键,来适用不同的编辑器

4.vim中最常用的原生命令

移动:

0 $    对应行首行为插入模式I A(insert  append)

e单词的结尾end  ea结尾处插入

b单词开头begin   bi开头出插入

w(word)  下一单词的开头

f 和 t  F和T

/搜索 *搜索光标下单词+nN前后

二合一:

caw  ciw 删除整个单词后进入插入模式

r/R 文本替换

其他必要的需求:

定义跳转,在光标当前单词上的直接跳转  在下方命令行指定单词的直接跳转YCM+Clang是必须的

自己的经验:vim一段时间不用就会忘记,所以vim的常用操作需要一开始每周看看 背背  操作一下 等到后期彻底熟练了就会好很多了

SpaceVim+NeoVim相关推荐

  1. Go语言 linux下开发 IDE -SpaceVim\NeoVim

    文章目录 Go语言 linux下开发 IDE -SpaceVim 一.NeoVim和SpaceVim区别 二.NeoVim 安装 NeoVim Neovim GitHub Copilot插件安装 常见 ...

  2. 关于Vim/Neovim/SpaceVim的一些思考

    1 前言 最近看到了Neovim以及SpaceVim,于是上手试了一下. 2 Neovim与SpaceVim Neovim是Vim的一个分支,具有更加现代的GUI.嵌入式以及脚本化的终端.异步工作控制 ...

  3. NeoVim/SpaceVim初体验

    安装 curl -sLf https://spacevim.org/install.sh | bash 具体见其GitHub官网 安装过程发生了什么呢?具体来说就是安装 SpaceVim 的过程中,它 ...

  4. 折腾 NeoVim 和 SpaceVim

    折腾 NeoVim 和 SpaceVim 2020-07-24T22:51:39+08:00 网上乱逛,听说 NeoVim 比 Vim 先进还快,虽然也有说不值得换的,不管,折腾,然后还发现了 Spa ...

  5. 组织管理插件-代码自动补全-语法检查等特性-SpaceVim v1.5.0

    简介: SpaceVim 是一个社区驱动的模块化 Vim/Neovim 配置集合,以模块的方式组织管理插件以 及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全, 语法检查. ...

  6. SpaceVim - 让你的vim变得更加高效和强大

    SpaceVim 中文手册 项 目 主 页: https://spacevim.org Github 地址 : https://github.com/SpaceVim/SpaceVim SpaceVi ...

  7. SpaceVim 中文教程

    项 目 主 页: spacevim.org Github 地址 : SpaceVim GitHub, 欢迎Star或fork. SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合 ...

  8. SpaceVim安装和使用

    SpaceVim安装和使用 SpaceVim 官网地址 https://spacevim.org/cn/quick-start-guide/ 说明 官网推荐的安装脚本 , 上面安装包是从 github ...

  9. SpaceVim自动补全coc:最强自动补全插件

    因为coc基于nodejs实现,需要较高版本的node. node安装 (nvm为node版本管理) curl -o- https://raw.githubusercontent.com/creati ...

最新文章

  1. 奇异值分解 SVD 的数学解释
  2. spoon kettle连接数据库失败解决方法
  3. mediasoup-demo 运行实战
  4. C#通过DllImport引入dll中的C++非托管类
  5. 在职人员计算机网络管理总结,关于学校网络管理员个人工作总结
  6. java junit
  7. 【报告分享】如何嫁给“改变世界的男人”-程序员之理想女友大调查.pdf(附下载链接)...
  8. 10 款最新的 jQuery 内容滑块插件
  9. Java中的break Label 和continue Label
  10. AutoCAD 二次开发之 ObjectARX 环境搭建
  11. C# Winform开发教程
  12. 两个pdf合并成一个pdf
  13. word没有显示endnote_word 未显示EndNote工具条的解决方法
  14. 如何创建CGColorRef在view.layer.borderColor上使用
  15. 开源PHP微信通用sdk,支持微信支付及所有基础接口(强烈推荐)
  16. 5行等腰三角形php,cad等腰三角形怎么画
  17. js内置对象处理-打印学生成绩单
  18. 制作自己的ip数据库
  19. EXE4J生成的exe文件自动请求管理员权限(UAC)
  20. 女研究生因压力大欲跳海轻生 民警跳入冰冷海水中救人

热门文章

  1. jquery each循环
  2. 【PPT及视频资料】360互联网技术训练营第十六期——大数据与微服务之路
  3. Swit小知识。。。
  4. 自学测试半年,终于收到了腾讯的offer,那一刻我哭出了声...
  5. 基于Android的小说阅读app的设计与实现
  6. 10 款下载量最高的 Mac 软件分享
  7. 一段简单的计算机程序举例,第3讲-最简单的C语言程序举例.docx
  8. PTCRB认证中WiFi OTA测试简介及常见问题解析
  9. FCC Part 25.203 卫星地球站站址和频率的选择—申请材料(1)
  10. 全球高效能人士给青年的50个忠告(中)--转载