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