我的主要学习环境是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: 00000000@qq.com ") 
        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