VIM 学习记录

我的主要学习环境是windows

这篇关于vim的学习也是在windows下使用vim8.0学习时的记录

发现的要点是,括号匹配类似于脚本语言 执行的快捷键的命令会直接定向到cmd的shall 我们在写.vimrc的时候要注意自己的环境是windows还是linux 如果是windows那么在执行生成的文件是不加./ 而在linux执行可执行文件要加./

如何打开文件 :e

如何保存退出 :wq

如何保存代码: 注意不是CTRL + S, 在VIM中CTRL + S是锁住的意思,锁住当前页面,我们用CTRL + q解除就可以了 应该在普通模式先使用:w

如何撤销操作: u 按照时间往前推 CTRL+ r 撤销上一步操作

如何向上向下滚动 ctrl+u ctrl+d

打开退格建的退格功能 set backspace=indent,eol,start

显示行号 set number 或者 set nu

运行代码: map :call Run() func! Run() exec “w” exec “!g++ -Wall -std=c++11 % -o %<.exe” exec “!%<.exe” endfunc

-w的意思是关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编译器会显示一些例如数据转换之类的警告,这些警告是我们平时可以忽略的。

-Wall选项意思是编译后显示所有警告。

"括号匹配 inoremap ( () inoremap [ [] inoremap { {} inoremap " “” inoremap ’ ‘’

我的.vimrc

syntax on  " 语法高亮  
set number "显示行号
map  ggVG "全选复制
set nocompatible  "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限  
set backspace=indent,eol,start "打开退格建的退格功能
" 自动缩进
set autoindent
set cindent
"括号匹配
inoremap ( ()
inoremap [ []
inoremap { {}
"inoremap { {}kA
inoremap " ""
inoremap ' ''
" 选中状态下 Ctrl+c 复制  
vnoremap  "+y
" Ctrl+v  
nmap   "+p
"撤销
map  ui
"使用jj来代替来回到normal模式
inoremap jj 
"保存
inoremap  :wi
"前一个文件
inoremap  :bn
"后一个文件
inoremap  :bp
"运行代码:
map  :call Run()
func! Run()
    exec "w"
    exec "!g++ -w -std=c++11 % -o D:/C/%<.exe"
    exec "!D:/C/%<.exe"
endfunc
"新建.c,.h,.sh,.java文件,自动插入文件头 
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()" 
""定义函数SetTitle,自动插入文件头 
func SetTitle() 
    if &filetype == 'cpp' || &filetype=='c'
        call setline(1, "/*************************************************************************") 
        call append(line("."), "    > File Name: ".expand("%")) 
        call append(line(".")+1, "  > Author: Amazing") 
        call append(line(".")+2, "  > Mail: [email protected] ") 
        call append(line(".")+3, "  > Created Time: ".strftime("%c")) 
        call append(line(".")+4, " ************************************************************************/") 
        call append(line(".")+5, "")
        call append(line(".")+6, "#include")
        call append(line(".")+7, "using namespace std;")
        call append(line(".")+8, "int main()")
        call append(line(".")+9, "{")
        call append(line(".")+10, " ")
        call append(line(".")+11, " return 0;")
        call append(line(".")+12, "}")
    endif
    "新建文件后,自动定位到文件末尾
    autocmd BufNewFile * normal G
endfunc
文章目录