vim - 初学者的生存
我非常幸运可以在初学 vim 的时候遇到这个文章:https://coolshell.cn/articles/5426.html. 它所倡导的几点对于我这个 vim ,甚至可以说 linux 初学者来说,是非常实在和使用的:
- 首先明白,你所面对的可能跟你之前接触到的文本编辑器概念完全不同,所以,把之前的概念抛置脑后~
- 其次就是,vim 很难,真的需要学习,所以先打消不经过学习,只是尝试就上手的念头
- 先幸存下来!!!
- 一个可预期的不长不短的学习周期,就可以获得一款可能是终生受用的编译器
生存要点:
- vim 默认的是观察状态,而不是编译状态!(请扭转观念)
- 状态转换的快捷键是 - i 进入编译状态 - ESC 进入观察状态。 (先从拯救乌干达可怜儿童的界面中出来) !
- i 进入编译模式,输入 test。OK! 已经编译了一个文本了
- 保存文件并退出 vim。先退出到观察模式 ESC 保存 - :w 新文件命名并保存 - :w xxxx.xx 退出 - :q 保存并退出 - :wq 强制退出 - :!q
OK! 已经可以生存下来了
C/C++ 插件配置 (初学者版)
如何配置 vim 插件
所有的(对于我这个初学者来说)插件设置都在 vimrc 这个文件中: 在 terminal 中输入 vim ~/.vimrc
- 配置分为两个部分:
-
首先是 vim 本身的显示设置
"xxxxxxxxxxxxxxxxxxxxx 常规参数设置 xxxxxxxxxxxxxxxxxxxxxxx" set nocompatible "去掉有关vi一致性模式,避免以前版本的bug和局限 set nu! "显示行号 filetype on "检测文件的类型 set history=1000 "记录历史的行数 set background=dark "背景使用黑色 syntax on "语法高亮度显示 set autoindent "当前行的对齐格式应用到下一行(自动缩进) set cindent "(cindent是特别针对 C语言语法自动缩进) set smartindent "依据上面的对齐格式,智能的选择对齐方式,对于>类似C语言编写上有用 set tabstop=4 "设置tab键为4个空格, set shiftwidth =4 "设置当行之间交错时使用4个空格 set ai! " 设置自动缩进 set showmatch "设置匹配模式,类似当输入一个左括号时会匹配相>应的右括号 set guioptions-=T "去除vim的GUI版本中得toolbar set vb t_vb= "当vim进行编辑时,如果命令错误,会发出警报,该设置去掉警报 set ruler "在编辑过程中,在右下角显示光标位置的状态行 set nohls "默认情况下,寻找匹配是高亮度显示,该设置关闭>高亮显示
如果有需要直接复制粘贴到 vimrc 中即可
-
vim 插件管理 我使用的是 vim-plug,相比于老牌的 vundle,实在是快太多了。安装方法:
$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim Neovim 用户可以使用以下命令安装 Vim-plug: $ curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
在 vimrc 中也相应的需要有修改
所有需要添加的插件都应当放置在 begin 和 end 之间
-
插件选择及配置
作为初学者,我只配置了三个功能的插件。参考http://www.skywind.me/blog/archives/2084
-
代码高亮
"----------------------代码高亮----------------------“ Plug 'itchyny/lightline.vim'
-
编译测试
1 "----------------------编译测试----------------------“ Plug 'skywind3000/asyncrun.vim' "...配置....“ "自动打开 quickfix window,高度为6 let g:asyncrun_open = 6 "任务结束时候响铃 let g:asyncrun_bell = 1 "单文件运行 nnoremap <silent> <F5> :AsyncRun -cwd=$(VIM_FILEDIR) -mode=4 "$(VIM_FILEDIR)/$(VIM_FILENOEXT)" <cr> "设置F10打开/关闭 Quickfix 窗口 nnoremap <F6> :call asyncrun#quickfix_toggle(6)<cr> "测试能否编译F7 nnoremap <silent> <F7> :AsyncRun gcc -Wall -O2 "$(VIM_FILEPATH)" -o "$(VIM_FILEDIR)/$(VIM_FILENOEXT)" <cr>
-
语法检查
Plug 'w0rp/ale' "配置" "ale "始终开启标志列 let g:ale_sign_column_always = 1 let g:ale_set_highlights = 0 "自定义error和warning图标 let g:ale_sign_error = '✗' let g:ale_sign_warning = '⚡' "在vim自带的状态栏中整合ale let g:ale_statusline_format = ['✗ %d', '⚡ %d', '✔ OK'] "显示Linter名称,出错或警告等相关信息 let g:ale_echo_msg_error_str = 'E' let g:ale_echo_msg_warning_str = 'W' let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' "普通模式下,sp前往上一个错误或警告,sn前往下一个错误或警告 nmap sp <Plug>(ale_previous_wrap) nmap sn <Plug>(ale_next_wrap) "<Leader>s触发/关闭语法检查 nmap <Leader>s :ALEToggle<CR> "<Leader>d查看错误或警告的详细信息 nmap <Leader>d :ALEDetail<CR>
-
安装插件
进入 vim,PlugInstall 安装插件