Vsvim: TabキーとShift + Tabキーで、選択範囲をインデント/インデント解除する必要があります

作成日 2013年07月09日  ·  11コメント  ·  ソース: VsVim/VsVim

ビジュアル選択モードでのTabのデフォルトのvimの動作はわかりませんが、VSのデフォルトでは、選択がタブでインデントされ、Shift + Tabでインデントされないようにするのは良いことです(少なくともset vsvim_useeditordefaults私のvimrcファイルにあります)。

最も参考になるコメント

.vsvimrcファイルの最初の2行は必要ありません。 3行目と4行目はそれを上書きします。
最初は:で動作するかどうかわかりません。 .vsvimrcに次の行があります

" Un-\Ident in Normal mode with Shift\Tab
nnoremap <Tab> >>
nnoremap <S-Tab> <<
" Un-\Ident in Insert mode with Shift\Tab
inoremap <Tab> <C-t>
inoremap <S-Tab> <C-d>
" Un-\Ident in Visual mode with Shift\Tab
vnoremap <Tab> >gv
vnoremap <S-Tab> <gv

そしてそれはほぼ完璧に動作します😄

全てのコメント11件

報告してくれてありがとう!

ビジュアルモードの現在の動作は仕様によるものです。 ビジュアルモードでは、 TabキーShift + Tabキーの両方がデフォルトで何もしません。 Visual Studioと同様の動作を実現したい場合は、シフト/シフト解除操作を実行するビジュアルモードのキーのバインディングを作成することができます。

:vmap <Tab> >>
:vmap <Shift+Tab> <<

これらのエントリを_vimrcファイルに配置するか、VsVim内で実行すると、 TabキーShift + Tabキーが期待どおりの動作をします。

注: vsvim_useeditordefaults設定はコマンドを参照しません。 代わりに、VsVimがtabstopshiftwidthなどの値に対してvimまたはVSのデフォルトを選択する必要があるかどうかを示します。

ああ、知っておくといい。 回避策と素晴らしい製品をありがとう!

コマンドはShift + Tabではなく、 :vmap <S-Tab> <<である必要があることを指摘しておく必要があります。

@pckujawa doh! はい。 それは正しいです。

これは、「vsvimシフトタブ挿入モード」でのGoogleでの最初のヒットでした。したがって、挿入モード(ビジュアルモードではない)で機能したのは次のとおりです。

:inoremap <S-Tab> <C-d>

ps素晴らしいプラグインをありがとう!

これはクローズドな問題ですが、ビジュアルモードでタブを押すと、ビジュアルモードの選択が削除されるため、複数のタブを移動するには再選択する必要があります。 これを回避する方法はありますか?

編集:実際には、カーソルを奇妙な種類の挿入(オーバーライド)状態にします。
編集2:また、中央のタブコンテンツを削除し、タブの境界に再配置するVisualStudioのタブ機能を尊重していないようです。

タブ/ Shiftタブの後に選択を復元するには、次のバインディングを使用できます。
vmap <Tab> >gv vmap <S-Tab> <gv

これにより、選択が失われる問題が修正されます。 これはグーグルでの最初のヒットなので、ロード間で持続するために.vsvimrcファイルに入れたものは次のとおりです...

:vmap <Tab> >>
:vmap <S-Tab> <<
:inoremap <S-Tab> <C-d>
:vmap <Tab> >gv
:vmap <S-Tab> <gv

.vsvimrcファイルの最初の2行は必要ありません。 3行目と4行目はそれを上書きします。
最初は:で動作するかどうかわかりません。 .vsvimrcに次の行があります

" Un-\Ident in Normal mode with Shift\Tab
nnoremap <Tab> >>
nnoremap <S-Tab> <<
" Un-\Ident in Insert mode with Shift\Tab
inoremap <Tab> <C-t>
inoremap <S-Tab> <C-d>
" Un-\Ident in Visual mode with Shift\Tab
vnoremap <Tab> >gv
vnoremap <S-Tab> <gv

そしてそれはほぼ完璧に動作します😄

ああ、それらがどのように連鎖しているかどうかはわかりませんでした。 私はまだvimにかなり慣れていません。 ただし、フロントの:では機能します。

Idealist1508が言及したコードを配置した後、VisualStudioに組み込まれているタブオートコンプリートが無効になっているようです。 タブを挿入する代わりに、行をインデントするだけです

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

jfmcoronel picture jfmcoronel  ·  22コメント

mqudsi picture mqudsi  ·  12コメント

Ybalrid picture Ybalrid  ·  10コメント

Kazark picture Kazark  ·  12コメント

leemuro picture leemuro  ·  25コメント