2017-04-24 9 views
1

1つのvimセッションで2つのファイルを編集しています(コマンド:tabnewを使用しています)。私は頻繁にそれらのファイルの1つだけに貼り付けています。 :set pasteを複数のコピーされたテキストを保存するのに便利です(私はautoindentを別のファイルに使用しています)。 1つのタブにのみ:set pasteを持つ方法がありますか?Vimで1つのタブにペーストを設定する

答えて

1

ペーストはグローバル設定です(ウィンドウや他のバッファのようにローカルではありません)。

autocmd BufEnter *.txt set paste 
autocmd BufLeave *.txt set nopaste 

あなたはまた、ペーストモードを切り替えるには、便利なショートカットを定義できます:

あなたは与えられたパターンに一致するファイルが編集されている場合にのみペーストモードを有効にautoコマンドを使用していることを回避でき

nnoremap \gp :set paste!<CR>:set paste?<CR> 

my .vimrcでは、(リーダーキーを使用して)そのようなトグルをもっと見ることができます。

+0

を動作させるために、あなたのvimrcに追加する必要があるすべてです。 – kyticka

1

Tim Popeのunimpairedプラグインを使用していますか?これは非常に便利なプラグインで、そのマッピングの1つはyoyOです。これはoOと同じですが、ペーストモードにする点が異なります。最高のビットは、通常モードに戻ったときに自動的にペーストモードが再び存在することです。

https://github.com/tpope/vim-unimpaired

+0

良いプラグインですが、Adam Byrtekのソリューションは私にとってはうまく動作します。なぜなら、1つのファイルにすべての時間ペーストモードを持つ必要があるからです。 – kyticka

1

自動的に貼り付けながらペーストを有効にして貼り付けを完了したら、それを無効にするにはすてきなコマンドを使用することができます。基本的には、ペーストモードにする必要はありません。ここ は、それがどのように行われるかを説明し記事全文です:automatically set past mode

これは、あなたはそれが実際に周りの仕事が私のためにうまく動作します

function! XTermPasteBegin() 
    set pastetoggle=<Esc>[201~ 
    set paste 
    return "" 
endfunction 

inoremap <special> <expr> <Esc>[200~ XTermPasteBegin() 
関連する問題