Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

vimでjsファイルのimport先のファイルを簡単に開く

$
0
0

概要

vimにgfというカーソル配下に書かれているファイルを開くコマンドがあります。
include先を開いたりする際に便利なのですが、ES6の場合、import文で書くファイルパスは.jsが省略されているため、実際のパスと一致しないため開けません。
また、index.jsの場合はindex.js自体が省略されるため、ディレクトリが開かれてしまいます。
そこでfiletypeがjavascriptの場合は、カーソル配下にパスの記述がある場合、Ctrl+Gでimport先のファイルをsplitで開くスクリプトを書きました。下記コードを.vimrc等に貼り付けると使えるようになります。

コード

function! ReadJSFile() abort
  lets:currentPos =col('.')lets:colNum =s:currentPos -1lets:lastPos = len(getline('.'))lets:fileName =''whiles:colNum >-1if getline('.')[s:colNum] =~"\['\"\]"breakendlets:fileName =  getline('.')[s:colNum] . s:fileName
    lets:colNum =s:colNum -1endwhilewhiles:currentPos <s:lastPos
    if getline('.')[s:currentPos] =~"\['\"\]"breakendlets:fileName =s:fileName . getline('.')[s:currentPos]
    lets:currentPos =s:currentPos +1endwhilelets:fullName = simplify(expand("%:h") . '/' . s:fileName)if!filereadable(s:fullName)if isdirectory(s:fullName)lets:fullName =s:fullName . '/index.js'elselets:fullName =s:fullName . '.js'endifendif
  execute ':sp ' . s:fullName
endfunctionautocmdFileType javascript nmap <C-g>  :call ReadJSFile()<CR>

splitではなくてvsplitを使っている方やいま開いているファイルの代わりに開いてほしい方はexecute ':sp 'の箇所をexecute ':vs 'execute ':e 'にすることで望んでいる動作に変更できます。
Ctrl+Gが嫌な人は<C-g>の箇所を別のキーに書き換えてください。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>