概要
よく忘れるので、自分用にメモメモ。
vimで他のエディタとかからソースコードを貼り付けようとして、挿入モードで Ctrl-v でウリャってやると結構な確率でインデントがガタガタになります。場合によっては勝手にコメントされちゃったりします。
例えば、以下のようなソースがあったとして
package main import ( "fmt" ) func main() { var ( done = make(chan struct{}) ch = make(chan int) ) go func() { defer close(ch) for i := 0; i < 10; i++ { ch <- i } }() go func() { defer close(done) for v := range ch { fmt.Println(v) } }() <-done }
これを vim で、挿入モードでCtrl-vで貼り付けると以下のようになります。
クリップボードを連携するように設定している場合は、*レジスタ使って "*p
とかするとうまく貼り付け出来るのですが、そうでない場合は以下のように
:set paste
と事前に実行してから、Ctrl-v してみてください。ちゃんと貼り付けできます。
デフォルト値は nopaste
ですので、後で元に戻しておきましょう。
:set nopaste
貼り付け時に自動で set paste
状態にしてしまうことも出来るのですが、私個人はあまり設定をイジらない派なので、都度やってます。
参考情報
過去の記事については、以下のページからご参照下さい。
いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。