zoukankan      html  css  js  c++  java
  • 【learning】vim爆改记 (如何让vim用起来像devc++)

    由于本蒟蒻NOIP人品大爆发,能去冬令营,故准备开始练习使用linux下的IDE:vim

    在dalao DTZ的帮助下,我装好了vim,并做了最初的配置。

    然而........好难用啊,怎么和devcpp全都不一样

    不能用剪贴板,不能用鼠标,还要打那么长的编译命令,看着就不爽~~

    于是,我写了这个配置文件。

    首先是一些很基础的东西:

    1 colorscheme desert
    2 set tabstop=4
    3 set softtabstop=4
    4 set shiftwidth=4
    5 set backspace=2
    6 set number

    这些代码是用于设置代码高亮,缩进大小等数据。然后重点来啦~~

    1 set mouse=a
    2 
    3 map! ` <esc>
    4 
    5 syntax on
    6 set cindent
    7 set wildmenu
    8 set hlsearch
    9 set ai

    其中,第一行的set mouse是启用鼠标。也就是鼠标可以移动光标(很妙啊这个操作)

    第三行的map!是一个映射,将“`”映射为Esc键,如果你要切换命令行,那么你的手就不用挪那么远了~

    下面的那些东西是dalao DTZ设置的,尚未研究透彻

    1 vmap <C-c> "+y
    2 map! <C-v> <esc>"+pi
    3 map! <C-r> <esc><C-R>i
    4 map! <C-z> <esc>ui
    5 map! <C-s> <esc>:update<CR>i
    6 map! <C-w> <esc>:exit<CR>i
    7 
    8 vmap <backspace> <delete>

    其中,vmap代表是在选定模式下,启用映射。我设置的vmap映射用途为:复制选定范围内的代码,删除选定范围内的数据。

    余下的,是在normal(即常规编辑模式)下,将Ctrl-v设置为vim下的粘贴,Ctrl-z/r设置为vim下的撤销/重做,Ctrl-s为保存,Ctrl+w为关闭该文件。

    PS:Ctrl-s在vim下已经有了定义,为避免冲突,我们要屏蔽掉原先的设定。在根目录下的.bashrc中写入以下配置:

    1 stty -ixon

    但是好像还剩下编译,运行,调试没有搞诶~

    map! <F9> <esc>:update<CR>:call CompileRunGpp() <CR>
    map  <F9> :update<CR>:call CompileRunGpp() <CR>
    func! CompileRunGpp()    
        exec "!g++ -g -o %< %"
    endfunc
    
    map! <F10> <esc>:call RunGpp()<CR>
    map  <F10> :call RunGpp()<CR>
    func! RunGpp()
        exec "! ./%<"
    endfunc
    
    map! <F5> <esc>:call Rungdb()<CR>
    map  <F5> :call Rungdb()<CR>
    func! Rungdb()
        exec "!gdb %<"
    endfunc

    我是完全按照devcpp的快捷键进行的配置,按F9编译,F10运行,F5启动调试。这三个操作的查看结果,输入,均在IDE中运行。

    由于鄙人技术有限以及某些固有限制,调试还是得输入gdb命令。

    大概就这么多了(配置真的累死我了)

    其实还有一些命令我尚未配置好,比如说Ctrl+a全选只做了一半,Ctrl+x剪切完全没实现等。

    附上完整代码:

    colorscheme desert
    set tabstop=4
    set softtabstop=4
    set shiftwidth=4
    set backspace=2
    set number

    set mouse=a

    syntax on
    set cindent
    set wildmenu
    set hlsearch
    set ai

    map! ` <esc>

    vmap <C-c> "+y
    map! <C-v> <esc>"+pi
    map! <C-r> <esc><C-R>i
    map! <C-z> <esc>ui
    map! <C-s> <esc>:update<CR>i
    map! <C-w> <esc>:exit<CR>i
    map! <C-a> <esc>ggVG

    vmap <backspace> <delete>

    map! <F9> <esc>:update<CR>:call CompileRunGpp() <CR>
    map <F9> :update<CR>:call CompileRunGpp() <CR>
    func! CompileRunGpp()
    exec "!g++ -g -o %< %"
    endfunc

    map! <F10> <esc>:call RunGpp()<CR>
    map <F10> :call RunGpp()<CR>
    func! RunGpp()
    exec "! ./%<"
    endfunc

    map! <F5> <esc>:call Rungdb()<CR>
    map <F5> :call Rungdb()<CR>
    func! Rungdb()
    exec "!gdb %<"
    endfunc

  • 相关阅读:
    Delphi Class of 类引用
    Class-reference types 类引用类型--快要失传的技术
    最简单的TabHost
    修改一些IntelliJ IDEA 11的设置,使Eclipse的使用者更容易上手(转)
    uva 10494
    uva748
    uva 465
    高精度
    uva 694
    uva414
  • 原文地址:https://www.cnblogs.com/xiefengze1/p/7955511.html
Copyright © 2011-2022 走看看