vim 学习 - 初学者的生存快捷键和 C/C++ 插件配置

vim - 初学者的生存

我非常幸运可以在初学 vim 的时候遇到这个文章:https://coolshell.cn/articles/5426.html. 它所倡导的几点对于我这个 vim ,甚至可以说 linux 初学者来说,是非常实在和使用的:

  • 首先明白,你所面对的可能跟你之前接触到的文本编辑器概念完全不同,所以,把之前的概念抛置脑后~
  • 其次就是,vim 很难,真的需要学习,所以先打消不经过学习,只是尝试就上手的念头
  • 先幸存下来!!!
  • 一个可预期的不长不短的学习周期,就可以获得一款可能是终生受用的编译器

生存要点:

  1. vim 默认的是观察状态,而不是编译状态!(请扭转观念)
  2. 状态转换的快捷键是 - i 进入编译状态 - ESC 进入观察状态。 (先从拯救乌干达可怜儿童的界面中出来) !
  3. i 进入编译模式,输入 test。OK! 已经编译了一个文本了
  4. 保存文件并退出 vim。先退出到观察模式 ESC 保存 - :w 新文件命名并保存 - :w xxxx.xx 退出 - :q 保存并退出 - :wq 强制退出 - :!q

OK! 已经可以生存下来了

C/C++ 插件配置 (初学者版)

如何配置 vim 插件

所有的(对于我这个初学者来说)插件设置都在 vimrc 这个文件中: 在 terminal 中输入 vim ~/.vimrc

  • 配置分为两个部分:
  1. 首先是 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 中即可

  2. 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 之间

  3. 插件选择及配置

    作为初学者,我只配置了三个功能的插件。参考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>
    
  1. 安装插件

    进入 vim,PlugInstall 安装插件

转载于:https://my.oschina.net/u/2362565/blog/2100948

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值