あなたが使用する必要がありますgetpos()
:
変数の位置を保存するには:
let save_pos = getpos(".")
getpos()
引数としてマークを取り"."
ます。ここでは、カーソルの現在位置を表します。
そしてそれを復元するには:
call setpos('.', save_pos)
ここで、最初の引数はカーソルの現在位置のマークを移動することを示し(したがって現在位置)、2番目はマークを置く場所(以前に保存した位置)を示します。
関数は次のようになります。
function! DollarSplit()
let save_pos = getpos(".")
normal! 6|r$ " replaces the 6th caracter in line with a $
call setpos(".", save_pos)
endfunction
詳細については以下を参照してください:h getpos()
と:h setpos()
の使用法の詳細については、execute
この関数は文字列を取得して実行します。文字列は、二重引用符または変数の内容の間のハードコーディングされた文字のみです。
書くとき
execute col_number."|"
12列目にいる場合、展開された文字列はになります12|
。Executeはこのコマンドを実行しようとし12|
ますが、vimscript関数ではなく通常モードのコマンドであるため機能しません。
vimscriptから実行するには、「通常モードで入力したかのように実行する」と言わなければなりません。それがnormalの使用目的です。
したがって、実行がなければ、次のように書くことになります。
normal 12|
execute
呼び出しを機能させるにはnormal
、次のように、展開した文字列にキーワードを追加する必要があります。
execute "normal " . col_number . "|"