Linux

【ペーストモード】vimでペーストした時に自動インデントしないようにする

記事内に商品プロモーションを含む場合があります

ターミナル(poderosa)上で vi で開いているファイルに対してのペースト。

AmazonLinux2 にしてから、インデントが崩れる事象が発生しました。

手元のエディタ(Visual Studio Code)では半角スペースでキレイにインデントされているのですけどね・・・。

そこで VSCode 上のターミナルを使って試してみたのですが結果は同じ。

ということで、怪しいのは vim ですね。

今回は vim の設定で自動インデントを回避してみたので紹介します。

vimのコマンドでペーストモードにする

vim のコマンドは基本的なものしか知らないのですが、過去に文字エンコーディングの変更を行ったことがあります。

vimでファイルエンコードを正しく表示するターミナルの環境によっては、vim でマルチバイト(日本語など)の文字列を含むファイルを開くと文字化けすることがあります。 今回は、vi...

これと同じように、vim にペーストモードを操作することが可能です。

以下のコマンドでペーストモードとなり、自動インデントが無効となります。

:set paste

元に戻したい時は「nopaste」ですが、

:set nopaste

元に戻す必要はないので最初からペーストモードになって欲しいところ。

vimの設定ファイルでペーストモードにする

vi 起動時にペーストモードになっていた方が嬉しいので、.vimrc ファイルに設定を書いてみることにします。

反映します。

これで最初からペーストモードとなりました。

入力モードにするとエディタの下部に以下のように表示されます。

— INSERT (paste) —

Windowsで秘密鍵のパーミッション設定

vim とは関係ないのですが、ちょっと余談。

冒頭で VSCode のターミナルについて触れましたが、Windows の場合は Power Shell になるんですよね。

ssh は使えるけど、コマンド実行したら下記のエラーが。

どうやら Power Shell では、Linux や Mac(UNIX系) のように chmod や chown は使えないようです。

調べて cacls コマンドで読み込み権限にしてみたのですが結果は同じ。

結果的には、個人ユーザの権限がフルコントロールだとダメということではなく、個人ユーザ以外のユーザにファイルが開放されているのがダメみたいですね。

秘密鍵のファイルを右クリックして、プロパティのセキュリティタブで個人ユーザ以外を削除しましょう。
(詳細設定から継承を外せば削除可能)

参考になった記事を紹介しておきます。

まとめ

vim のペーストモードについて紹介しました。

vi で編集中のファイルにペーストした際、インデントが大きく崩れる場合は試してみてください。

ディストリビューションが変わったのが原因だと思いますが、デフォルト設定が急に変わるのは困りますね。