(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【vi/vim】viへのコピペでインデントがずれる事象への対策

スポンサーリンク

事象

コピー(Ctrl+c)したテキスト情報をviのinsertモードでペースト(Ctrl+v)するとインデントがずれていく。
具体的には以下のようになる。

[
        {
                 "Notification":
                         {
                                             "NotificationType": "ACTUAL",
環境情報
$ vi --version
VIM - Vi IMproved 9.0 

対応策

viのコマンドモードにて以下を入力する。

:set paste

この状態でinsertモードに入ると下部にてpaste modeとなっていることが表示され

-- INSERT (paste) --      

インデントがずれずにペースト(貼り付け)が行える。

[
{
 "Notification":
        {
            "NotificationType": "ACTUAL",

以下、補足です。

補足

同モードを戻したい場合はコマンドモードで以下のように入力します。

:set nopaste

尚、自分が今どのモードにしているかを確認したい場合は:setにて設定情報が表示されます。

:set                                                                                                                                     
--- Options ---
  comments=           display=truncate    history=200       nolangremap           scrolloff=5         ttimeoutlen=100
  commentstring=      filetype=json       hlsearch            nrformats=bin,hex   showcmd             ttymouse=xterm
  cscopetag           formatoptions=cq    incsearch           paste               syntax=json         viminfo='20,"50
  cscopeverbose       helplang=en         langnoremap         scroll=10           ttimeout            wildmenu
  backspace=indent,eol,start
  cscopeprg=/usr/bin/cscope
  fileencodings=ucs-bom,utf-8,default,latin1
  guicursor=n-v-c:block,o:hor50,i-ci:hor15,r-cr:hor30,sm:block,a:blinkon0
  indentexpr=GetJSONIndent(v:lnum)
  indentkeys=0{,0},0),0[,0],!^F,o,O,e

以上、ご参考になれば幸いです。