vimを使用expandtabs
して、行のテキストの左側にいる場合はオフにし、空白以外の文字の右側にいる場合はオンにします。(インデントにはタブを使用し、位置合わせにはスペースを使用したいと思います。)
これはできますか?
vimを使用expandtabs
して、行のテキストの左側にいる場合はオフにし、空白以外の文字の右側にいる場合はオンにします。(インデントにはタブを使用し、位置合わせにはスペースを使用したいと思います。)
これはできますか?
はい。スマート タブプラグインを使用します。
このスクリプトを使用すると、行頭に通常のタブ設定を使用し、それ以外の場所ではタブをスペースとして展開できます。これにより、「インデント」と「配置」が効果的に区別されます。
<tab>
エディター タブ設定を使用して、行の先頭 (最初の非スペース文字の前) にタブを挿入し、それ以外の場合はスペースを挿入します。
<BS>
エディターのタブ設定を使用して、smarttab でタブまたは「展開された」タブを削除します
Vim に関数の引数を整列させるには、以下を追加します。
set cindent
set cinoptions=(0,u0,U0
に.vimrc
。プラグインは空白を次のようにエンコードします。
int f(int x,
......int y) {
--->return g(x,
--->.........y);
}
これにより、" x
" と " "の位置合わせがy
タブのサイズに関係なく行われます ( tabstop
)。
次のようなものを試してください。
function! TabMaybeIndent()
if strpart(getline('.'), 0, col('.') - 1) =~ '^\s*$'
return "\<Tab>"
else
return " "
endif
endfunction
set noexpandtab
imap <Tab> <C-r>=TabMaybeIndent()<CR>