iOS向けのVimであるiVimをカスタマイズします。
App Storeからインストールできます。
iPad上では、.vimrc
は見えません。
あらかじめ作成したファイルをiOS標準のファイル.appでVim
フォルダに入れて、iVimにて:!mv vimrc ~/.vimrc
などとしなければならないです。
iVim特有の機能として、:idoc
でファイル.appを起動させてファイルを操作することもできるので、ベースとなるファイルをiVimで開くこともできます。
:idoc
にて、otf, ttfのフォントファイルを開くことにより、フォントをインストールすることができます。
利用可能なフォントは、:ifont
により一覧で表示できます。
この機能により、Nerd Fontも導入できます。
.vimrc
に使用するフォントを設定します。ifont
の後に:ifont
で表示されたフォントの番号とサイズを設定します。
1ifont 5 18
Vim8 から標準でプラグイン機能が使えます。iVimもVim8ベースなので、プラグイン機能がそのまま使えます。
:!mkdir -p .vim/pack/plugins/start
でプラグイン用のディレクトリを作成し、.vim/pack/plugins/start
にプラグインのフォルダを入れることにより、Vimの起動時にそのプラグインが読み込まれます。
(上記plugins
の部分は、任意の名称にすることができます。)
iPadで外付けのハードウェアキーボードを使うと、日本語入力の候補表示が見づらいです。
代替の日本語変換としては、skk.vimが動作します。
.vimrc
にSKK辞書の場所等を設定します。SKK-JISYO.L
はあらかじめUTF-8に変換しておく必要があります。
1"2" skk.vim3"4let g:skk_large_jisyo = '~/skk/SKK-JISYO.L'5let g:skk_jisyo = '~/skk/skk-jisyo'6let g:skk_auto_save_jisyo = 1
Nerd Fontを表示できるようにします。
ステータスラインのカスタマイズプラグインとして、lightline.vimがiVimで動きます。
lightline.vimに関する.vimrc
の設定です。
Nerd Fontを使うとステータスラインのセパレーターやアイコンを表示することができます。
tablineの表示やファイルフォーマットのアイコンが表示されるようにしてます。 SKKのモードも表示するようにしてます。
1"2" lightline3"4let g:lightline = {5 \ 'colorscheme': 'iceberg',6 \ 'active': {7 \ 'right': [ [ 'lineinfo' ],8 \ [ 'percent' ],9 \ [ 'skkstatus', 'fileformat', 'filetype' ] ]10 \ },11 \ 'component': {12 \ 'vim_logo': "\ue7c5",13 \ },14 \ 'tabline': {15 \ 'left': [ [ 'vim_logo', 'tabs' ] ],16 \ },17 \ 'component_function': {18 \ 'filetype': 'FiletypeWebDevIcons',19 \ 'fileformat': 'FileformatWebDevIcons',20 \ 'skkstatus': 'Skkgetmode'21 \ },22 \ 'tab_component_function': {23 \ 'tabnum': 'TablineWebDevIcons',24 \ },25 \ 'separator': { 'left': "\ue0b0", 'right': "\ue0b2" },26 \ 'subseparator': { 'left': "\ue0b1", 'right': "\ue0b3" },27 \ }2829" ファイルフォーマットがunixのときの既定値30let g:WebDevIconsOS = 'Darwin'3132function! FiletypeWebDevIcons()33 return winwidth(0) > 70 ? (strlen(&filetype) ? &filetype . ' ' . WebDevIconsGetFileTypeSymbol() : "\uf057") : ''34endfunction3536function! FileformatWebDevIcons()37 return winwidth(0) > 70 ? (strlen(&fenc) ? &fenc . ' ' . WebDevIconsGetFileFormatSymbol(): &enc . ' ' . WebDevIconsGetFileFormatSymbol()) : ''38endfunction3940function! TablineWebDevIcons(n)41 let l:bufnr = tabpagebuflist(a:n)[tabpagewinnr(a:n) - 1]42 return WebDevIconsGetFileTypeSymbol(bufname(l:bufnr))43endfunction4445function! Skkgetmode()46 let _ = SkkGetModeStr()47 return strlen(_) ? substitute(_, '\[\|\]', '', 'g') : ''48endfunction
見栄えはこれで大分良くなったと思います。