* NIXテキストエディタについて少し知っています(現在、nano
から)、Unix & Linux SEを少し見てみると、vi
が使用されていることに気づきました。かなりの数の質問で「vim」の代わりに。 「vim」は「ViIMproved」の略であると私は知っていますが、それを念頭に置いて、なぜ誰もがvimの代わりにviを使用したいのか疑問に思っています。 viにはvimよりも大きな利点がありますか?
編集:私の質問は誤解されていると思います。私は、vimが、ほとんどの場合、viよりもはるかに強力で機能が充実していることを知っています。私が知りたいのは、メモリ使用量が少ない、* nixシステムで普及しているなど、viがvimよりも有利である可能性がある場合があるかどうかです。
コメント
..Ubuntuは最もユーザーフレンドリーなディストリビューションの1つです;-)
vim
が含まれています。 vi
は、デフォルトのインストールで最終的にvim
を指すシンボリックリンクです。vi
の POSIX仕様を使用してvi
を学習してください。そうすれば、ポータブルの知識とVim拡張機能の知識が得られます。回答
vi
は(また) POSIX標準エディター。実装はたくさんあり、vim
がおそらく最も人気があります。
多くの従来のUnix準拠のOSは、vi
を提供します。標準に非常に近い実装であるvim
には、両刃の剣となる多くの追加機能が追加されています。
もちろん、これらの拡張機能は通常、設計されています。編集プロセスを容易にし、便利な機能を提供します。ただし、それらのいくつか(構文の色付けのような表面的なものではなく、エディターの動作を変更するもの)に慣れると、それらが特定のものであることを簡単に忘れることができます。元のBSDに基づくものを含む別の実装を使用します。コードは非常にイライラする可能性があります。逆も当てはまります。
これは、dash
またはksh
。
回答
viにはありません ” vimに対する重要な利点は、その逆ではありません。 VimにはViよりも多くの利点があります。あなたは興味があるかもしれません:なぜ、ああ、なぜ、それらの#?@をするのですか?ナットヘッドはviを使用しますか?
編集も読んでください: VIMを学ぶことは努力する価値がありますか?
コメント
- はい。 ' IDEを使用しないのは、IDEが強制的に使用するエディターが' tVimではないためです。
- @Keith私はXcodeとEclipseの両方を使用していますが、' viのみで編集を行うことができます。
- @Keith SlickEditには優れたVimエミュレーションがあり、IDEA 'が近づいています。また、VisualStudioにはViEmuがあります。
- IntellIJには、標準のエディター'の動作をオーバーライドする優れたvimプラグインもあります。
回答
私の人生の大部分(子供時代を除く)をVimで快適に編集した後、約1か月間viのみを使用しました。そうすることで、私はテキスト修正の必要性のすべてをVimに依存していたことに気づきました。 viで旅行する前は、テキストを置き換えたり、ファイルの大きなグループで同様の操作を実行したりする必要があるときはいつでも、Vimでファイルを開いて、:bufdo
コマンドを実行していました。 、そしていくつかのファイルをインデントまたはフォーマットする必要があるときはいつでも、それらをVimで開き、Vimの=
およびgw
コマンドを使用しました。 。私はVimに依存していました。viにこれらのコマンドがないことに気付いた後、sed
を使用して一括テキスト変換を実行することを余儀なくされ、awk
およびindent
。最終的にはVimの使用に切り替えましたが、機能の少ないエディターを使用して得た知識はかなりのものであり、非常に役立つことが証明されています。テキストエディタ以外のツールについて学ぶことに加えて、私はviについてもよく知るようになりました。 Vimを備えていない新しいシステムやサーバーで作業しているときはいつでも、1か月の遠足の前よりもviを使用する方がはるかに快適です。
また、先月Linuxをインストールしました安価なWM8650タブレットで、Vimとviの間に顕著なパフォーマンスの違いがあることがわかったので、タブレットでviを使用する傾向があります。
コメント
- これはITの一般的な問題であることがわかりました。これは、'学習したほうがよいことをわかりにくくするのに役立つツールです。
- 実際には、多くのファイルのインプレースファイル編集は、' AwkまたはSed どちらかで移植可能に行うことはできません。(
-i
はGNU拡張機能です。)ただし、for f in *; do printf '%s\n' '%!sed -e '\''some sed command'\' x | ex "$f"; done
回答のようなもので移植的に使用できます。 h2>
vimなしでは生活に苦労しますが、 viに耐えられません。ただし、前者を学習することで、少なくとも、利用可能なすべての場合に後者に対処する方法についてのアイデアが得られます。
デフォルトのvimインターフェイスは、実際にはviにかなり近いです。 「vimを使ってシステムで作業しているとき、最初に行うことは、このようなものを~/.vimrc
に追加することです:
syntax enable set nocp set wildmenu
「nowrapやnumberingonなど、私が好む他の要素もたくさんありますが、気にしないでください。「syntax enable」は、基本的な構文の強調表示をオンにするだけです(やや強力:filetype plugin on
は基本も); “nocp” viの互換性をオフにしますこれが、vimと古いviを区別し始めます(例: 、showmode
を有効にします。これにより、コマンドモードか〜INSERT〜モードかについての手がかりが得られるため、エクスペリエンス全体がやや人間味のあるものになります。「wildmenu」は、いくつかのことをするときの水平方向の完了メニュー。これにより、作業も楽になります。
vimのテキスト編集機能は他に類を見ません。emacsを除いて、近くにあるソフトウェアを見たり聞いたりしたことはありません。それらを学ぶのは簡単ではありませんが、一度知ってしまえば、マウスメニューよりもはるかに高速で、マウスメニューベースのインターフェイスの単純なキーマクロの選択肢よりもはるかに動的です。プログラミングでは、EclipseのようなIDEと一緒にvimを使用することがありますが、ほとんどの作業はvimで行います。
その道をたどるなら、笑、オートコンプリートとタグリストのプラグインを調べてください。そして、ダークサイドに注意してください。
コメント
- 私は常に
set mouse=a
も追加します。
- プログラミングに関してコメント、 eclim がおもしろいと思うかもしれません…
- @ire_and_curses:haven ' tそれを試してみました。 Eclipseとvimはどちらもソースファイルを監視し、それらを外部から更新できるようにします。あるデスクトップから別のデスクトップへの切り替えは、あるデスクトップから別のデスクトップへの切り替えです。かなりのアイデアのようです。
- 'この回答を選択する必要があるとは思いませんが(' sバイアス)、'は、違いを理解するのに役立つパースペクティブのタイプです。ポジションをとっていただきありがとうございます。
回答
利点は、viが通常AIXやSolaris。また、インストールメディアではvimにアクセスできません。
回答
これは Vim Koans :
マスターWqとUnixマスター
古いUnixマスターがマスターWqにやって来ました。 「私は困っています、Wq。あなたはVimのやり方を教えます。 viは神聖ですが、Vimはそうではありません。そのコードは無秩序に広がり、その機能はメモリを混雑させます。そのバイナリは広大で、動作に一貫性がありません。これはUnixのやり方ではありません。あなたが生徒を誤解させるのではないかと心配しています。何ができるでしょうか?」
マスターWqはうなずきました。 「あなたは正しい」と彼は言った。 「Vimは壊れています。修正しましょう。始めましょうか?」
古いUnixマスターが同意し、シェルを開きました。彼は次のように入力しました:
$ vi vim.c
彼はコーディングを始めました。マスターWqはしばらく見てから、「どのviの実装を使用していますか? Nvi? Vim?エルビス?」
「わからない」とUnixマスターは言った。 「それは問題ではありません。」
マスターWqはうなずきました。 Unixマスターはしばらく驚いて、保存せずにドキュメントを閉じました。
コメント
- ははは…それは私にとって面白いです…。深いが面白い。共有していただきありがとうございます。
回答
以前の回答ですでに述べたように、viにはほぼすべてのUNIXシステムが付属しています。
例を追加したかっただけです。 Arch Linuxは特に人気があり軽量のディストリビューションであり、インストーラーもベースディストリビューションもデフォルトでvimに付属していませんが、どちらにもviが付属しています。
これはvi自体の利点ではありません 、vimを手動でインストールするだけで、テキストエディタを必要とするインストールで達成する必要のあることはほとんどなく、意図した目的でvimがviより優れている場合は何もありません。しかし違いとそのviを理解するはvimよりもユビキタスで軽量であり、いくつかのニッチな利点があります。
また、包括的であるために、viがvimの直接の前駆体であることを明確に述べた人はまだいません。
つまり、非常に直接的な方法で、vimはviよりも優れています。それは設計されているからです。
回答
vimではなくviを使用する唯一の理由は、他に選択肢がない場合です。
理由はたくさんあります。 vimはfoを表しますr「viが改善されました」!
私が回答した関連投稿からの借用:-
- 複数のウィンドウ-水平、垂直&タブ。
- 視覚的な強調表示。
- :helpコマンドによるオンラインヘルプ。
- マクロをレジスタに記録して実行できるようにします。
- 古いviの非常識な元に戻すトグルではなく、複数回元に戻す(およびやり直す)。
- コマンドライン履歴、検索履歴。
- 言語全体が使用可能な関数(例:getcwd()
- 大幅に拡張されたパターンマッチング。
- ctrl-Pによる単語補完& ctrl-N。
- 組み込みのファイルナビゲーター(少し不格好ですが、便利な場合があります)。
- ESCキーは、(めちゃくちゃに)実行するのではなく、エスケープしようとしていたコマンドを実際に終了します。 viと同じように。
- bufdo、argdo & windoを介してすべてのバッファー、引数、またはウィンドウでコマンドを実行する機能。
コメント
- <で言及した"多くの"の理由を持ち込んだ可能性があります。 /div>unix.stackexchange.com/a/425597/85039 はこちらで回答してください。その'は、この答えを少し良くします。それ以外の場合は、実際の回答というよりもコメントのように読めます
- ポイントを取得します。昨日行った関連する回答から借用して、回答を更新しました。
回答
のみ VIM
ではなくVi
を選択する場合cat
コマンドを使用したテキストドキュメントまたは構成ファイルをコピーして貼り付けています。これは、ctrl-c
を実行してから、ctrl-v
をVIM
で開いたドキュメントにしようとするとすべての行の前にコメントを付けるように強制します。したがって、Vi
を使用してctrl-v
またはpaste
をVi
開いたドキュメント、コピー元を正確に貼り付けます。それ以外は、一日中VIM
を使用しています。
お楽しみください!
コメント
-
:set paste
- set pastetoggle = < F2 > in .vimrc( vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste )
vimなしでは生活に苦労しますが、 viに耐えられません。ただし、前者を学習することで、少なくとも、利用可能なすべての場合に後者に対処する方法についてのアイデアが得られます。
デフォルトのvimインターフェイスは、実際にはviにかなり近いです。 「vimを使ってシステムで作業しているとき、最初に行うことは、このようなものを~/.vimrc
に追加することです:
syntax enable set nocp set wildmenu
「nowrapやnumberingonなど、私が好む他の要素もたくさんありますが、気にしないでください。「syntax enable」は、基本的な構文の強調表示をオンにするだけです(やや強力:filetype plugin on
は基本も); “nocp” viの互換性をオフにしますこれが、vimと古いviを区別し始めます(例: 、showmode
を有効にします。これにより、コマンドモードか〜INSERT〜モードかについての手がかりが得られるため、エクスペリエンス全体がやや人間味のあるものになります。「wildmenu」は、いくつかのことをするときの水平方向の完了メニュー。これにより、作業も楽になります。
vimのテキスト編集機能は他に類を見ません。emacsを除いて、近くにあるソフトウェアを見たり聞いたりしたことはありません。それらを学ぶのは簡単ではありませんが、一度知ってしまえば、マウスメニューよりもはるかに高速で、マウスメニューベースのインターフェイスの単純なキーマクロの選択肢よりもはるかに動的です。プログラミングでは、EclipseのようなIDEと一緒にvimを使用することがありますが、ほとんどの作業はvimで行います。
その道をたどるなら、笑、オートコンプリートとタグリストのプラグインを調べてください。そして、ダークサイドに注意してください。
コメント
- 私は常に
set mouse=a
も追加します。 - プログラミングに関してコメント、 eclim がおもしろいと思うかもしれません…
- @ire_and_curses:haven ' tそれを試してみました。 Eclipseとvimはどちらもソースファイルを監視し、それらを外部から更新できるようにします。あるデスクトップから別のデスクトップへの切り替えは、あるデスクトップから別のデスクトップへの切り替えです。かなりのアイデアのようです。
- 'この回答を選択する必要があるとは思いませんが(' sバイアス)、'は、違いを理解するのに役立つパースペクティブのタイプです。ポジションをとっていただきありがとうございます。
利点は、viが通常AIXやSolaris。また、インストールメディアではvimにアクセスできません。
これは Vim Koans :
マスターWqとUnixマスター
古いUnixマスターがマスターWqにやって来ました。 「私は困っています、Wq。あなたはVimのやり方を教えます。 viは神聖ですが、Vimはそうではありません。そのコードは無秩序に広がり、その機能はメモリを混雑させます。そのバイナリは広大で、動作に一貫性がありません。これはUnixのやり方ではありません。あなたが生徒を誤解させるのではないかと心配しています。何ができるでしょうか?」
マスターWqはうなずきました。 「あなたは正しい」と彼は言った。 「Vimは壊れています。修正しましょう。始めましょうか?」
古いUnixマスターが同意し、シェルを開きました。彼は次のように入力しました:
$ vi vim.c
彼はコーディングを始めました。マスターWqはしばらく見てから、「どのviの実装を使用していますか? Nvi? Vim?エルビス?」
「わからない」とUnixマスターは言った。 「それは問題ではありません。」
マスターWqはうなずきました。 Unixマスターはしばらく驚いて、保存せずにドキュメントを閉じました。
コメント
- ははは…それは私にとって面白いです…。深いが面白い。共有していただきありがとうございます。
以前の回答ですでに述べたように、viにはほぼすべてのUNIXシステムが付属しています。
例を追加したかっただけです。 Arch Linuxは特に人気があり軽量のディストリビューションであり、インストーラーもベースディストリビューションもデフォルトでvimに付属していませんが、どちらにもviが付属しています。
これはvi自体の利点ではありません 、vimを手動でインストールするだけで、テキストエディタを必要とするインストールで達成する必要のあることはほとんどなく、意図した目的でvimがviより優れている場合は何もありません。しかし違いとそのviを理解するはvimよりもユビキタスで軽量であり、いくつかのニッチな利点があります。
また、包括的であるために、viがvimの直接の前駆体であることを明確に述べた人はまだいません。
つまり、非常に直接的な方法で、vimはviよりも優れています。それは設計されているからです。
vimではなくviを使用する唯一の理由は、他に選択肢がない場合です。
理由はたくさんあります。 vimはfoを表しますr「viが改善されました」!
私が回答した関連投稿からの借用:-
- 複数のウィンドウ-水平、垂直&タブ。
- 視覚的な強調表示。
- :helpコマンドによるオンラインヘルプ。
- マクロをレジスタに記録して実行できるようにします。
- 古いviの非常識な元に戻すトグルではなく、複数回元に戻す(およびやり直す)。
- コマンドライン履歴、検索履歴。
- 言語全体が使用可能な関数(例:getcwd()
- 大幅に拡張されたパターンマッチング。
- ctrl-Pによる単語補完& ctrl-N。
- 組み込みのファイルナビゲーター(少し不格好ですが、便利な場合があります)。
- ESCキーは、(めちゃくちゃに)実行するのではなく、エスケープしようとしていたコマンドを実際に終了します。 viと同じように。
- bufdo、argdo & windoを介してすべてのバッファー、引数、またはウィンドウでコマンドを実行する機能。
コメント
- <で言及した"多くの"の理由を持ち込んだ可能性があります。 /div>unix.stackexchange.com/a/425597/85039 はこちらで回答してください。その'は、この答えを少し良くします。それ以外の場合は、実際の回答というよりもコメントのように読めます
- ポイントを取得します。昨日行った関連する回答から借用して、回答を更新しました。
のみ VIM
ではなくVi
を選択する場合cat
コマンドを使用したテキストドキュメントまたは構成ファイルをコピーして貼り付けています。これは、ctrl-c
を実行してから、ctrl-v
をVIM
で開いたドキュメントにしようとするとすべての行の前にコメントを付けるように強制します。したがって、Vi
を使用してctrl-v
またはpaste
をVi
開いたドキュメント、コピー元を正確に貼り付けます。それ以外は、一日中VIM
を使用しています。
お楽しみください!
コメント
-
:set paste
- set pastetoggle = < F2 > in .vimrc( vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste )
vi
の良いところは、すべてのPOSIX準拠システムに搭載されることを期待できることです。vim
ではなくdivid = “7ac0a49198″>