0

Scala インポートをソートする関数を書きたいと思います。

インポートの開始点と終了点をすでに見つけることができました。あとは、実際の並べ替えを行うだけです。

function! SortScalaImport()
  call cursor(1, 1)
  let start = search('^import') "find first line with import
  let end = search('^\(import\|\n\)\@!') "find first non-import line
  let end = end - 1
  execute 'normal '.start.','.end.'sort'
endfunction

関数の最後の行はそれを行うべきですが、何もしません。どこが間違っていますか?

4

2 に答える 2

2

Vim はモードベースのエディターであるため、スクリプトを作成する際にはモードも考慮する必要があります。

:normal通常モードjのコマンド、つまりナビゲート ( , ) またはテキストのw変更 ( x, ) のための短いものです。gUUを使用すると、コマンド ライン モード:に入り、Ex コマンド (または など) が実行されます。通常、これらをそのまま Vimscript 関数 (例: ) に入れることができますが、変数 (この場合は行番号) を入れたい場合は、 variables 以外のすべてを使用する必要があります。:substitute:sort%delete _:execute'quoted'

于 2013-02-08T16:09:57.767 に答える
1

なぜあなたがあなたの実行に追加するのか分かりませんかnormal

これはあなたのために働きますか?

execute start.','.end.' sort'
于 2013-02-08T15:38:15.023 に答える