Nvim :help ページは、ここから生成され、ソースには tree-sitter-vimdoc パーサーが使用されています。
{stmt} perl ステートメント {stmt} を実行します。カレントパッケージは "main" です。:perl コマンドが動作するかの簡単な確認:perl print "Hello":[range]perl << [trim] [
{endmarker}] {script} {endmarker} perl スクリプト {script} を実行します。{script} の後の {endmarker} の前には空白文字を入れてはいけません。function! MyVimMethod()
perl << EOF
sub my_vim_method
{
print "Hello World!\n";
}
EOF
endfunctionperl のバージョンを確認するには:perl print $^V
{cmd} [range] 内の各行に対して perl コマンド {cmd} を実行します。$_ には各行のテキストが末尾の <EOL> なしで設定されます。$_ に加えて、$line と $linenr にもそれぞれ行の内容と行番号が設定されます。$_ を設定するとテキストが変更されますが、このコマンドを使用して行を追加または削除することはできません。[range] のデフォルトはファイル全体です: "1,$"。:perldo $_ = reverse($_); :perldo $_ = "".$linenr." => $line";perl を使用して範囲をフィルタリングするために、
:perldo を :perl と組み合わせて使用できます。例えば:perl << EOF
sub perl_vim_string_replace
{
my $line = shift;
my $needle = $vim->eval('@a');
my $replacement = $vim->eval('@b');
$line =~ s/$needle/$replacement/g;
return $line;
}
EOF
:let @a='somevalue'
:let @b='newvalue'
:'<,'>perldo $_ = perl_vim_string_replace($_):perl @ARGV = ("foo", "bar");
:perlfile myscript.plいくつかの例を以下に示します perl-examples:perl print "Hello" :perl $current->line (uc ($current->line)) :perl my $str = $current->buffer->[42]; print "Set \$str to: $str"("use" ステートメントなどの) 変更は、あるコマンドから次のコマンドに引き継がれることに注意してください。
print "Hello" # displays a message
VIM::Msg("Hello") # displays a message
VIM::SetOption("ai") # sets a vim option
$nbuf = VIM::Buffers() # returns the number of buffers
@buflist = VIM::Buffers() # returns array of all buffers
$mybuf = (VIM::Buffers('a.c'))[0] # returns buffer object for 'a.c'
@winlist = VIM::Windows() # returns array of all windows
$nwin = VIM::Windows() # returns the number of windows
($success, $v) = VIM::Eval('&path') # $v: option 'path', $success: 1
($success, $v) = VIM::Eval('&xyz') # $v: '' and $success: 0
$v = VIM::Eval('expand("<cfile>")') # expands <cfile>
$curwin->SetHeight(10) # sets the window height
@pos = $curwin->Cursor() # returns (row, col) array
@pos = (10, 10)
$curwin->Cursor(@pos) # sets cursor to @pos
$curwin->Cursor(10,10) # sets cursor to row 10 col 10
$mybuf = $curwin->Buffer() # returns the buffer object for window
$curbuf->Name() # returns buffer name
$curbuf->Number() # returns buffer number
$curbuf->Count() # returns the number of lines
$l = $curbuf->Get(10) # returns line 10
@l = $curbuf->Get(1 .. 5) # returns lines 1 through 5
$curbuf->Delete(10) # deletes line 10
$curbuf->Delete(10, 20) # delete lines 10 through 20
$curbuf->Append(10, "Line") # appends a line
$curbuf->Append(10, "L1", "L2", "L3") # appends 3 lines
@l = ("L1", "L2", "L3")
$curbuf->Append(10, @l) # appends L1, L2 and L3
$curbuf->Set(10, "Line") # replaces line 10
$curbuf->Set(10, "Line1", "Line2") # replaces lines 10 and 11
$curbuf->Set(10, @l) # replaces 3 linesモジュール関数{arg}) vim オプションを設定します。{arg} は ":set" コマンドが受け入れる任意の引数です。これは、引数にスペースを含めることができないことを意味します! :set を参照してください。{bn}...]) 引数がない場合、配列コンテキストですべてのバッファのリストを返し、スカラーコンテキストでバッファの数を返します。バッファ名または番号のリスト {bn} の場合、Vim の内部関数 bufname() と同じルールを使用して、{bn} に一致するバッファのリストを返します。 警告: :bwipe が使用されると、リストは無効になります。{wn}...]) 引数がない場合、配列コンテキストですべてのウィンドウのリストを返し、スカラーコンテキストでウィンドウの数を返します。ウィンドウ番号のリスト {wn} の場合、それらの番号を持つウィンドウのリストを返します。 警告: ウィンドウが閉じられると、リストは無効になります。{expr}) {expr} を評価し、リストコンテキストで (成功、値) を返し、スカラーコンテキストで値のみを返します。success=1 は、val に {expr} の値が含まれていることを示します。success=0 は、式の評価に失敗したことを示します。'@x' はレジスタ x の内容を返し、'&x' はオプション x の値を返し、'x' は内部 変数 x の値を返し、'$x' は perl の $ENV{x} と同等です。コマンドラインからアクセスできるすべての 関数 は {expr} に対して有効です。リスト は、項目を結合して改行を挿入することで文字列に変換されます。{lnum}, {lnum}, ...) 指定された各 {lnum} について、バッファ内の行 {lnum} のテキスト文字列を返します。{lnum} のリストを含む配列を渡すことができます。{lnum}, {lnum}) バッファ内の行 {lnum} を削除します。2 番目の {lnum} がある場合は、最初の {lnum} から 2 番目の {lnum} までの行の範囲を削除します。{lnum}, {line}, {line}, ...) 各 {line} 文字列をバッファ行 {lnum} の後に追加します。{line} のリストは配列にすることができます。{lnum}, {line}, {line}, ...) バッファ行 {lnum} から始まる 1 つ以上のバッファ行を、指定された {lines} に置き換えます。{line} のリストは配列にすることができます。引数が無効な場合、置換は行われません。{row}, {col}) 引数がない場合、ウィンドウ内の現在のカーソル位置の (行、列) 配列を返します。{row} と {col} 引数を使用すると、ウィンドウのカーソル位置を {row} と {col} に設定します。{col} は Perl 流に 0 から始まるため、Vim のルーラーの値より 1 少ないことに注意してください。