vim編輯lua程式碼配置
阿新 • • 發佈:2019-02-09
vim編輯c/c++有很多教程,也比較好弄,編輯lua會有些問題
vimmanager
grep.vim
minibufexpl.vim
taglist_45
vim-misc
vim-lua-ftplugin
用的軟體:
grep
ctags58
頂部開啟檔案列表和左邊資料夾預覽與檔案預覽
所用外掛 TagList WinManager
_vimrc配置
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let g:miniBufExplMapWindowNavArrows=1
let g:winManagerWindowLayout='FileExplorer|TagList'
開關左邊欄快捷鍵設定
每次都輸入WMToggle太麻煩,_vimrc中新增下面行即可用wm開關
nmap wm :WMToggle<cr>
開啟lua檔案自動執行wm
au VimEnter *.lua :WMToggle
F3一鍵搜尋
所用外掛grep.vim
輸入:Grep xxx * -r太麻煩,_vimrc中新增下面行F3一鍵搜尋
nmap <silent><F3> :Grep <c-r>,c-w> * -r <CR>
所用外掛 vim-lua-ftplugin vim-misc
安裝完以後編輯lua檔案的時候很多功能正常了,比如[{跳轉
ctags
比如我的lua中定義變數是這樣的:
def.method("string").funcname1 = function(name)
只需要新增--regex-MYLUA="/^.*\s*def\.method\([^)]*\)\.(\w+)\s*=\s*function\([^)]*\).*$/\1/f/"
最近弄了好長時間,總算基本需求都弄好了,總結下。
主要看的文章是
vim使用者手冊中文版手把手教你把Vim改裝成一個IDE程式設計環境
主要用的外掛是:我用的外掛已經上傳:資源vimmanager
grep.vim
minibufexpl.vim
taglist_45
vim-misc
vim-lua-ftplugin
用的軟體:
grep
ctags58
一般問題
vim編輯檔案(主要是c/c++)主要功能 手把手教你把Vim改裝成一個IDE程式設計環境 中都有介紹,但是不是都有用,下面是我用到的頂部開啟檔案列表和左邊資料夾預覽與檔案預覽
所用外掛 TagList WinManager
_vimrc配置
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let g:miniBufExplMapWindowNavArrows=1
let g:winManagerWindowLayout='FileExplorer|TagList'
開關左邊欄快捷鍵設定
每次都輸入WMToggle太麻煩,_vimrc中新增下面行即可用wm開關
nmap wm :WMToggle<cr>
開啟lua檔案自動執行wm
au VimEnter *.lua :WMToggle
F3一鍵搜尋
所用外掛grep.vim
輸入:Grep xxx * -r太麻煩,_vimrc中新增下面行F3一鍵搜尋
nmap <silent><F3> :Grep <c-r>,c-w> * -r <CR>
lua相關
安裝完以後編輯lua檔案的時候很多功能正常了,比如[{跳轉
ctags
ctags預設生成tag是按照c/c++格式生成的,網上找到一個可以用,但是由於自己的lua程式碼有特殊的格式需要識別,只需要稍作修改即可
ctags --langdef=MYLUA --langmap=MYLUA:.lua --regex-MYLUA="/^.*\s*function\s*(\w+):(\w+).*$/\2/f/" --regex-MYLUA="/^\s*(\w+)\s*=\s*[0-9]+.*$/\1/e/" --regex-MYLUA="/^.*\s*function\s*(\w+)\.(\w+).*$/\2/f/" --regex-MYLUA="/^.*\s*function\s*(\w+)\s*\(.*$/\1/f/" --regex-MYLUA="/^\s*(\w+)\s*=\s*\{.*$/\1/e/" --regex-MYLUA="/^\s*module\s+\"(\w+)\".*$/\1/m,module/" --regex-MYLUA="/^\s*module\s+\"[a-zA-Z0-9._]+\.(\w+)\".*$/\1/m,module/" --languages=MYLUA --excmd=number -R .
def.method("string").funcname1 = function(name)
只需要新增--regex-MYLUA="/^.*\s*def\.method\([^)]*\)\.(\w+)\s*=\s*function\([^)]*\).*$/\1/f/"
即可,其格式是"/匹配模式/\index/型別/"