Unix/Linux er的常规编辑器vi,emacs。楼猪比较习惯使用vi。
我对编辑器的要求比较少:
语法高亮;显示行号;对齐;文件头显示作者、时间等信息
显示本文件的函数,宏等; 可以在函数定义、函数调用之间切换
使用分三部分来说:
插入i【在前】,a【在后】
删除d dw单词, dd一行, D本行光标以后
删除多行 n, md 4,7d删除4到7行
移动 3,7mo10 3,到7行移动到10行下
快速跳转:
文件头 g
文件末尾G
% 匹配{} ,()
*
和 #
匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)
sp 水平(上下)分割窗口
vs 垂直(左右)分割窗口
set syntax=on
set filetype=c
set nu
########【详见http://linux-wiki.cn/wiki/zh-hans/Vim%E4%BB%A3%E7%A0%81%E7%BC%A9%E8%BF%9B%E8%AE%BE%E7%BD%AE】
######tabstop
set ts=4
#######shiftwidth每层缩进
set sw=4
set tags=tags;
set autochdir
set hlsearch //文件中搜索的单词高亮显示,nosearch取消高亮;原来vim默认设置,ubuntu没有很不习惯
set cc=80 //需要vim 7.2以上版本,红线限制每行的长度,要有美观撒
"programm info
"map :call TitleDet()'s //这个写法是错误滴,E20: Mark not set
"http://stackoverflow.com/questions/15554107/an-e20-mark-not-set-when-try-to-update-info-in-vim
"what is the 's at the end ?? do you have mark s?
map :call TitleDet()
function AddTitle()
call append(0, "/*===============================================================")
call append(1, "*")
call append(2, "* Author: clark")
call append(3, "*")
call append(4, "* E-mail: ")
call append(5, "*")
call append(6, "* company: myself")
call append(7, "*")
call append(8, "* Last modified: ".strftime("%Y-%m-%d %H:%M"))
call append(9, "*")
call append(10, "* Filename: ".expand("%:t"))
call append(11, "*")
call append(12, "* Description: ")
call append(13, "*")
call append(14, "===============================================================*/")
echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endfunction
function UpdateTitle()
normal m'
execute '/* *Last modified:/s@:.*$@\=strftime(":\t%Y-%m-%d %H:%M")@'
normal ''
normal mk
execute '/* *Filename:/s@:.*$@\=":\t\t".expand("%:t")@'
execute "noh"
normal 'k
echohl WarningMsg | echo "Successful in updating the copy right." | echohl None
endfunction
function TitleDet()
while n < 14
let line = getline(n)
if line =~ '^\*\s*\S*Last\smodified:\S*.*$'
call UpdateTitle()
return
endif
let n = n + 1
endwhile
call AddTitle()
endfunction
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1