search
LoginSignup
5

More than 5 years have passed since last update.

posted at

updated at

true/falseを切り替えるコマンドを作った

内容

コードを書いている時にtrue/falseを書き直すのが面倒なので、Vim scriptの勉強として作ってみた。
switchBoolean.gif

コード

function! BooleanToggle()
  let l:word = expand("<cword>")
  let l:bool = {'true': 'false', 'false': 'true'}
  if has_key(l:bool, l:word)
        let l:tmp = @a
    let @a = l:bool[l:word]
    execute 'normal "_diw'
    execute 'normal "aP'
      let @a = l:tmp
  endif
endfunction
nnoremap <silent> <LEADER>+ :call BooleanToggle()<CR>

コード説明

  1. expand("<cword>")でカーソルの単語をローカル変数に格納
  2. true/falseの辞書型変数を作成
  3. カーソルの単語がtrue/falseだったらレジスタをローカル変数に退避させ、レジスタに値を格納
  4. レジスタを上書きしないようにブラックホールレジスタでカーソルの単語を削除
  5. レジスタに格納した論理値をペースト
  6. 退避させたレジスタを元のレジスタに格納
  7. <LEADER>+で論理値を切り替えるように設定

その他

AndrewRadev/switch.vimというプラグインがあるみたい。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
5