Closed1

lexima.vimで{.pragma.}の閉じ括弧を補完する

NeoNeo

VSCode NeoVimからneovimに移行中、lexima.vimという閉じ括弧補完の定番らしいプラグインを知ったので、VSCodeではできなかった{.pragma.}のような斜に構えたやや複雑な閉じ括弧の補完をしてみる。

init.lua
-- カーソルが{}内にいるときドットを押すと補完
vim.fn['lexima#add_rule'] {
  char = '.',
  at = [[{\%#}]],
  input_after = '.',
  filetype = {"nim", "nims", "nimble"}
}
-- カーソルの後ろにドットがあるときドットを押すとカーソルを右にずらす
vim.fn['lexima#add_rule'] {
  char = '.',
  at = [[{\%#.}]],
  leave = 1,
  filetype = {"nim", "nims", "nimble"}
}
-- カーソルが{..}内にいるときBackSpaceで後ろのドットも消去
vim.fn['lexima#add_rule'] {
  char = '<BS>',
  at = [[{.\%#.}]],
  delete = 1,
  filetype = {"nim", "nims", "nimble"}
}

引数atに渡す文字列だけ[[]]で囲んでいるのは、シングルクォートだとカーソルを表す\%#が不当なメタ文字扱いされてlspに怒られるため。

このスクラップは1ヶ月前にクローズされました