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

vimがシェルから取得できるさまざまなオプションと、エディターを起動するためのさまざまなコマンドに関する質問。

5
xargsでVimを呼び出した後、ターミナルが停止しました
私は時々xargs、次のようにVimを呼び出してみました: find . -name '*.java' | xargs vim …どの種類の作品: Vimが起動すると、次の警告が短時間点滅します。 Vim: Warning: Input is not from a terminal 編集は機能します— 期待どおりに:filesすべての.javaファイルを正しく列挙します。 保存して終了できます。 しかし、Vimを終了した後、私の端末は停止します: シェルプロンプトで入力した内容はエコーされません。 キャリッジリターンはまったく表示されず、改行のみが表示される場合があります。 これはreset(1)、端末を再初期化するコマンドを発行するまで続きます。 これはVimのバグですか、それともそのような端末と対話する理由について、より満足のいく説明がありますか?LinuxおよびさまざまなUnicesでVimバージョン7.3(バージョンは重要ではないようです)までVimで発生するのを見てきました。 私は1つの回避策、すなわちを知っていますvim $(find . -name '*.java')。私の主な質問ではありませんが、他の回避策も歓迎します。


1
非インタラクティブにファイルを編集する方法(パイプラインなど)
パイプライン入力で渡されたファイルを非インタラクティブな方法でvimを使用して編集するか、インプレースでファイルを編集します(と同様sed)。 以下を使用したいくつかの例sed: $ sed -i'.bak' s/foo/test/g file # Edit file in-place. $ cat file | sed s/foo/test/g # Parse file in pipeline. しかし、私はここで読むことができました: sedあるS tream ED itor、ないファイルエディタが。それにもかかわらず、どこでも人々はファイルを編集しようとするためにそれを乱用する傾向があります。ファイルは編集しません。 次に、インプレース編集(-i)などの一部のオプションは移植可能です。 vimで同じ機能をどのように実現できますか?

4
Viを挿入モードに自動的にロードします
Linuxシステムでは、Viを好みの(そして実際にのみ)テキストエディターとして使用しています。モードを通常モードから挿入モード、およびその逆に変更する方法を知っています。Viを通常モードではなく挿入モードに自動的にロードすることは可能ですか?

2
外部コマンドから既存のVimインスタンスのファイルを開くことはできますか?
一部のアプリケーションには「セッション」の概念があり、コマンドを実行してアプリケーションの既存のインスタンスにファイルをロードできます。 たとえば、次のように入力すると: $ firefox http://vi.stackexchange.com Firefoxは、新しいプロセスを作成するのではなく、既存のFirefoxプロセスを再利用します。 これはVimで可能ですか?

5
vimにvimコマンドをパイプすることは可能ですか?
次のシェルを実行したい。 wea-this is the end of the second word | vim j exit 0 キーストロークをパイプしてw(単語を進めて)、e(単語の終わり)、a(追加)、-this is the end of the second word(テキスト)を、j既に単語が含まれている名前の付いたVimドキュメントにパイプすることを期待していました。 シェルスクリプトを実行すると、次のエラーが発生しました。 /root/bin/tt.sh: line 1: wea-this: command not found Vim: Warning: Input is not from a terminal Ubuntu 14.04を実行しています。2つのタイプの回答があります: この望ましい結果を達成するための配管の使用方法。 「Vimコマンド」(edコマンドまたはsedコマンドではない)を使用して、シェルスクリプトからテキストドキュメントを編集できる別の方法。
18 invocation 

4
標準入力からコンテンツを編集する方法は?
まだファイルを持たずにコマンドラインから動的に生成されたvimのコンテンツを編集したいと思います。 例: $ echo This is example. | vim /dev/stdin $ cat /etc/hosts | vim /dev/stdin しかし、エラーで失敗しています: Vim:警告:入力は端末からではありません Vim:入力の読み取りエラー、終了... それを達成することは可能ですか?

3
LinuxディストリビューションにViまたはVimがインストールされているかどうかを確認するにはどうすればよいですか?
デフォルトのインストール(bash、Konsole)でKubuntu 14.04を使用します。パワフルなオールキーボードのテキストエディターを学びたいと思います。Vi、Vim、Emacsのいずれかを使いました(そして、Nanoは簡単なので学びます)。BashとPythonというコマンドラインの経験が少しあるので、WindowsシステムなしでLinuxを使用するという目的で、別のスキルを追加する準備ができています。 Bashから、入力するvimか、emacsパッケージをインストールするように求められます。 入力はvi機能します。エディターを実行しているので、Viでなければならないと思いました。 しかし、スプラッシュスクリーンは、あなたがbashであること、それを呼び出すと、言うVIM Vi Improvedと、それはだというRunning in Vi compatible mode。だから今、私はそれがVimでなければならないことを理解しています。 それでvim、bashで入力してもエディターが実行されないのはなぜですか?

1
「virgin」モードでのvim / gvimの実験
時々、インターネットで見つけたトリックを試したいと思います。これをvim(guiトリックの場合はgvim)で、virginモードで、つまり、すべての〜/ .vimrcをロードせずに試すと役立つことがよくあります。 これを効率的に行うためのヒントはありますか?

2
コマンドラインから標準出力にバッファ全体を書き込む方法は?
バッファ全体を/dev/stdoutファイルではなく標準出力()に書き込みたいのですが、次のコマンドはファイルの編集中に期待どおりに機能します。 :w >> /dev/stdout ヒント:Control+ Lを押して画面を更新します。 しかし、コマンドラインから(非対話的に)同じことを行おうとすると、期待どおりに機能しません。たとえば、次のようになります。 $ echo This is example. | vim - '+:w >> /dev/stdout' '+:q!' Vim: Reading from stdin... 同じ:w !tee、:x! /dev/stdout、:%printおよび同様。 終了する前に、それは言っています:[Device] 1L, 17C appended。 パイプの途中でvimに標準入力を標準出力に強制的に書き込む方法はありますか?多分それは何とか緩衝されていますか?

2
なぜ.vimrcファイルをvimソース化しないのですか?
今日、私は私の.vimrc効果が出ていないことを発見しました。ほんの数時間前に大丈夫だった。 でvimを起動したとき$vim --plugin、:scriptnames何もエコーされませんでした。.vimrcファイルが読み込まれていません。(注:/etc/vimrcこの問題をデバッグするために削除されました。) それから私はグーグルを試みて、$VIMINIT不審な変数を見つけました。 の値は$VIMINIT次のとおりです。 $ echo $VIMINIT set number Vimに関するドキュメントVIMINIT: c. Four places are searched for initializations. The first that exists is used, the others are ignored. The $MYVIMRC environment variable is set to the file that was first found, unless $MYVIMRC was already set. - The environment variable …

3
すべてのプラグインが読み込まれない「ライトモード」を導入するにはどうすればよいですか?
私のVim設定には、現在のプロジェクトの処理、タグのビルドなどを試みるプラグインが含まれています。これは、Vimでの毎日のプログラミングに非常に役立ちますが、次のようないくつかの簡単な編集にVimを使用する場合に面倒です。 git commitメッセージを編集します。 Ctrl+xCtrl+ezshまたはbash と入力したときにシェルコマンドを編集します。 等 --nopluginsサラウンドやイージーモーションなど、一部のプラグインをクイック編集モードで利用したいので、どちらも好きではありません。 したがって、いくつかの「ライトモード」(または「クイックモード」)が必要です。プラグインの一部はバイパスされますが、すべてではありません。 私の最初のアイデアは、vimscriptで解析する特別なコマンドライン引数を用意することでしたが、すばやくグーグルすると、vimscriptでは現在不可能であることがわかります(ちなみに悲しいことですが)。 2つ目のアイデアは、vimの実行時に次のように環境変数を設定することです。 $ VIM_LIGHT_MODE=1 vim これはgitで動作します: $ git config --global core.editor 'VIM_LIGHT_MODE=1 vim' 私がしなければしかしEDITOR='VIM_LIGHT_MODE=1 vim'、およびタイプCtrl+xCtrl+eのシェルでは、それは動作しません。 edit-command-line:13: command not found: VIM_LIGHT_MODE=1 次に私はこれを試しました:EDITOR="bash -c 'VIM_LIGHT_MODE=1 vim'"が失敗しました: vim': -c: line 1: syntax error: unexpected end of file (正直に言うと、これは特に奇妙に見え$EDITORますが、使用方法が正確に誤解されているようです。誰かがここで何が起こっているのか説明してもらえたらうれしいです) 他のすべての実験も失敗しました。 私が考えることができる唯一のハックはservername、次のようないくつかを設定することです: $ vim --servername VIM_LIGHTWEIGHT_MODE そしてv:servername、vimscript …


3
コマンドラインからvimを起動して、\を含む特定のコマンドを実行するにはどうすればよいですか?
私の~/.vimrc場合、ほぼ次のように定義されたコマンドがあります。 nnoremap <expr> <Leader>n ':new ~/Notes/' . strftime('%F') . '-' ファイル名に現在の日付を含むノートファイルを作成するために設計されています。キーバインドは、コマンドラインにカーソルを置いたままにして、メモのトピックを入力してを押すように設計されていますReturn。 これは、vim内から機能します。ただし、vimを開いてこのコマンドを起動するために使用できる端末コマンドも指定しようとしています。私はもう試した: vim -c '\n' (私のリーダーはデフォルトのに設定されていますが\、変更しない方がいいでしょう) ただし、これは機能しません。代わりに、コマンドラインの処理中にエラーが検出されました。E10:\の後に/ 、? または&。これがvimのバグなのか、何か間違っているのかわかりません。私も試しました: vim -c '<Leader>n' しかし、これは与える:E488::後続の文字:コマンドラインの処理中にエラーが検出されたNキーを押して続行するために、コマンドを入力するか、または入力します。 私が望むものを達成する方法はありますか?

3
コマンドラインから新しいバッファのコンテンツを指定するにはどうすればよいですか?
ターミナルで指定されたコンテンツでバッファを開く、つまりファイルに保存されないようにVimを呼び出す方法はありますか? たとえば、実行vimしてそれがfoo, bar, baz and qux書き込まれた状態でバッファを開くようにしたいと思います。 これを行うオプションはありますか?

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