タグ付けされた質問 「vimscript」

Vimに埋め込まれたスクリプト言語。これを使用して、Vimをニーズに合わせてカスタマイズしたり、プラグインを作成したりできます。VimLとも呼ばれます。

5
VimscriptでOSを検出する
純粋な Vimscript(PythonまたはPerlなし)を使用して、現在のオペレーティングシステム(Windows、Linux、OS X、..)を取得できますか? 使用しているオペレーティングシステムの種類ごとに、(同期された).vimrcで異なる設定を有効にしたい。
38 vimscript 

5
オプションの引数を使用してvimscript関数を作成する方法は?
オプションの引数を持つ関数を作りたいです。 Pythonでは、私はこのようなことをします: def functionName(arg1,arg2=false,arg3=false): if arg2: #Do stuff with arguments else: #Do stuff without arguments やってみfunction FunctionName(arg1,arg2=false,arg3=false)ましたが、引数が無効であるというエラーが出ます。 vimscriptでこれを行うにはどうすればよいですか?
34 vimscript 

3
Vimで文字列をどのように「チョップ」しますか?
次のvimscriptを実行するとします。 let @z = system("date") これにより、現在の日付の文字列バージョンがzレジスタに格納されますが、文字列は不要な改行で終了します。chomp文字列の末尾の改行を取り除くための組み込みの方法(Perlに似ています)はありますか?
32 vimscript 

1
IFステートメントで条件演算子ANDまたはORを使用しますか?
これはおそらく非常に単純な質問ですが、これまでのところ何も答えが見つかりませんでした(適切な情報源が不足している必要があり、vimのヘルプで検索する場所がわかりません)。 条件があり、 'AND'を含めたい if (condition1 .AND. condition2) "do what I want you to do endif しかし、構文が見つかりませんでした。「OR」についても同じです。
30 vimscript 

2
letとsetの違いは何ですか?
Vimの背後にある理論の多くは知りません。setいくつかの変数とlet他の変数のように見えます。違いは何ですか?一方が他方よりも必要な場合は? また、ソラリゼーションされたvimカラースキームは、このインスタンスのlet g:blabla...重要性を何と言っていg:ますか?
29 vimrc  vimscript 

6
どうすればVimで本当に楽しいことができますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 ViおよびVim Stack Exchangeで話題になるようにします。 閉じた3年前。 Vimが大好きです。私はそれを使って一生を過ごします:仕事では、Vimでコードを開発し、それで設定ファイルを編集し、それでメールを書きます。自宅では、todoリストとバケットリストを作成します。暇なときに本を書きます。私はVimについてのミートアップに行き、それを使用することを知っているすべての人を説得しようとします(残念ながら、私のおばあちゃんは、友人に手紙を書くためにそれを使用することに同意しません)。 私たちの愛する編集者へのこのすべての愛で、私は大きな問題に直面しています:通常構成された人間として、私は時々リラックスして楽しみたいです。当然、敬なエディターでそれをしたいのですが、どうすればそれができるのかわかりません。もちろん、私は何時間も自分の配色をカスタマイズし、私が長い間見ている再帰的なマクロを書くことに費やしましたが、6、7時間後にはそれはもはや楽しくありません。 だから私はあなたに仲間のVimmersを呼んでいます:Vimでどうやって楽しむことができますか? 編集この投稿は明らかにエイプリルフールでした(もちろん、私のおばあちゃんはVimを使うのが大好きです)。回答とコメントをありがとうございました。本当に素晴らしいアイデアがいくつか提案されています!
25 vimscript 

1
Vim関数をサイレントに呼び出す
カーソルを現在の行の最初の文字に移動する小さなVim関数を作成しました。カーソルがすでに最初の文字にある場合、カーソルは代わりに最初の列に移動します。 " Jump to first character or column noremap H :call FirstCharOrFirstCol()<cr> :function! FirstCharOrFirstCol() : let current_col = virtcol('.') : normal ^ : let first_char = virtcol('.') : if current_col == first_char : normal 0 : endif :endfunction この関数をサイレントモードで呼び出すにはどうすればよいですか?むしろ、「:call FirstCharOrFirstCol()」はステータス行に表示されませんでした。単に変更するだけnoremap H :silent call…では十分ではないようです。
25 vimscript 


2
シェルコマンドの結果を.vimrcファイルの変数に抽出しますか?
私の.vimrcファイルでは、外部コマンドの結果を変数に保存したいと思います。私の場合は: $ echo $LANG 私のvimrcファイルは次のようになります: let language = output(!echo $LANG) if language == 'en' nnoremap <somekey> <ohanotherkey!> end if 今のところ、私はそれを行う方法を見つけることができませんでした。コマンドモードで:read !echo $LANGは、探しているコンテンツが現在のファイルに挿入されることがわかりました。しかし、vimrcファイルに書き留める方法がわかりません。

2
Vimをプライベートモードで起動する最も簡単な方法
プライベートモードでVimを簡単に起動できるようにしたい。このコマンドセットを利用するものとしてプライベートモードを定義しましょう。 set history=0 set nobackup set nomodeline set noshelltemp set noswapfile set noundofile set nowritebackup set secure set viminfo="" プライベートモードに適した追加のコマンドを考えられるかどうか教えてください。 重要なのは、このセットアップでVimを起動するための短くて簡単な方法は考えられないということです。 ここに私が思いついたいくつかのアイデアがあります: .vimrcの代わりに.vimrcprivateをロードする 必要なコマンドをすべて.vimrcprivateに入れて、次のようにVimを起動できます。 vim -u .vimrcprivate Private()関数を定義して呼び出す 別のアイデアとして、次のようなコードを.vimrcに追加します。 function Private() " set of commands here endfunction そして、次のようなプライベートモードでVimを起動できます。 vim -c 'call Private()' 変数を使用してコマンドのセットアップをトリガーします これは、2番目のソリューションと非常によく似ています。追加するだけ if exists('privatemode') " set of commands …


5
視覚的な選択をキーボードにコピーした後、元の場所に戻ります
突然、その段落をコピーする必要があると判断したときに、カーソルが段落の中央にあります。 そこでvip、視覚的に入力して段落を選択します。 今、私はcmd+Cクリップボードにコピーするためにヒットします(これはシステムによって異なる場合がありますが、私の投稿の中心的な質問に関連するべきではありません)。 目的の位置ではなく、私が始めたときの位置です。 で選択を非視覚的にヤンクすると同じ問題が発生することに注意してくださいyip。 このような選択/コピーアクションを実行した後、デフォルトの動作を「元のカーソル位置に戻す」ようにしたいと思います。これを可能にする構成はありますか?

1
このカスタムコマンドで「E488:末尾の文字」エラーが表示されるのはなぜですか?
私はこれ~/.vimrcを含むものを持っています: function! NewFile() let filename = input("Filename:") endfunction command NewFile :call NewFile()<cr> (もちろん私の実物.vimrcはもっと複雑ですが、プラグインなどを使わずにこの小さなテストケースを再作成しました。 私の意図は、テンプレートに従って新しいファイルの作成をサポートする関数を書くことです。ファイルの名前など、一部の入力項目はviユーザーから要求されます。 この関数はまだそれほど洗練されていません(控えめに言っても!)-ファイル名を尋ねるだけです。NewFileviコマンドラインからコマンドを使用すると起動しますが、ファイル名を入力してEnterキーを押すと、エラーが発生します。 E488: Trailing characters 何故ですか?何が間違っていますか?

2
setと:setの違いは何ですか?
私はティム・ポープのvim-sensibleプラグインを見ていましたが、READMEでこれに気付きました... 機能の信頼できるリストについては、ソースを参照してください。(心配しないでください、ほとんどが:set呼び出しです。) ソースを見ると、:set呼び出しは次のようになっています... set autoindent の:前にありませんset。 私も実際:setに例で見たことがあると確信しています.vimrc。 違いはなんですか? どのフォームを使用する必要があります.vimrcか?
16 vimscript  vimrc 

4
貼り付けオプションを設定しますが、1つの挿入のみ
Vim 'paste'オプションを設定し、テキストを挿入して、前の値に戻す簡単な方法が必要です'paste'。 典型的なユースケースでは、自動インデントなどのアクティブな挿入モードの書き換えに関係なく、Vimの状態を変更せずに、OSクリップボードのコンテンツを文字通り挿入します。別のユースケースは、OSマクロ機能がキーストロークをVimに挿入し、リテラルテキストとして解釈できるようにすることです。 これは明らかに他のオプションに一般化されます-一般的な考え方は、いくつかのオプションを設定することですが、挿入モードを1回実行する間のみです。 基本的に_i、これを行うマクロにキーシーケンス(たとえば)をバインドしたい :set paste i…<Esc> :set nopaste ここi…<Esc>で、iコマンドと同様に挿入モードに切り替えて、コマンドモードに戻ったときにマクロを再開しますが、'paste'事前にアクティブだった場合はまだアクティブになります。これどうやってするの? 注:OSクリップボードのコンテンツは"*registerにマップされます。それが機能する場合、この'paste'オプションはあまり役に立ちません。この質問の動機付けのシナリオは、"*レジスタサポートの条件が満たされていない場合です。Vimは+xterm_clipboard機能でコンパイルされていないか、Screenなどの端末で実行されているか、SSHを介してアンビエントXサーバーから隔離されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.