タグ付けされた質問 「original-vi」

2
vimを終了するときの:wq <cr>:x <cr>とZZの違いは何ですか?
ご存じのとおり、ViとVimには多くの同義語があります。ファイルを保存してVimとViを終了する方法は3つあります。これらは:WQ &lt;CR&gt; 、:X &lt;CR&gt;とZZ。これらは何らかの点で異なると聞きました。 使用する間に実際的な違いはありますか? :x&lt;cr&gt; :wq&lt;cr&gt; または ZZ ファイルを保存してVimとViを終了するには?

2
なぜYはy $ではなくyyの同義語なのですか?
これには特定の歴史的理由がありますか? 背景 —(質問を既に理解している場合は、この部分をスキップできます。) 中級/上級viユーザーが知っているようにy、 "yank"コマンドは次の移動コマンドで指定されたテキストをヤンク(コピー)します。* ye単語の最後までヤンクし、y0カーソル位置から行頭までヤンクしますy_現在の行全体をy$ヤンクし、カーソル位置から現在の行の最後までヤンクします。 d(削除)コマンドとc(変化する)コマンドが両方同様にこれらの動きのすべてで使用することができます。 ddは、d_現在の行全体の同義語であり、削除します。同様に、現在の行のcc同義語でc_あり、変更します(つまり、すべてのテキストを削除し、行の先頭で挿入モードにします)。** 「yank」コマンドはこの規則に従います。yyのように現在の行全体をヤンクしますy_。 同義語の別のセットがあります:Dは同義語でd$あり、カーソル位置から行末までを削除します。 Cは同義語でc$あり、カーソル位置から行末までテキストを変更し、挿入モードにして新しいテキストを入力します。 しかし、Yある別の同義語yyかy_とヤンクます全体のラインをあなたから期待通りだけでなく、カーソルから行末までCとDパターン。 Vimの下位互換性を維持するためにVimでこのように保持されていることを理解していviます:help Y。 「Y」をカーソルから行末まで(より論理的ですが、Vi互換ではない)動作させたい場合は、「:map Y y $」を使用します。 だから、これはからのホールドオーバーですvi。いいよ しかし、そもそもコマンドがそのように設計されたのはなぜですか?これまでに何か論理はありましたか? *具体的には、レジスタ0にテキストを配置し、名前のないレジスタをレジスタ0に向けます。 **これSは私の質問には関係ありませんが、ccまたはの別の同義語ですc_。

5
VimとVIの最大の違い
今日、私はVimの代わりにViを試してみることにしました。それがどれほど違うかを見たかったのです。私はまったく大きな違いに気付きませんでした。私が気づいた最大のこと-- INSERT --は、挿入モードに入ったときにViが言っていないことであり、いくつかの小さなインターフェイスの違いがありました。 ViとVimの最大の違いは何ですか?

2
vi、nvi、vimの関係は何ですか?
いつかいくつかのUNIXで、という名前のコマンドを見つけましたnvi。それはviのようなエディタであり、その機能の多くはありませんでした。たぶんそれは古い人のフォークだったのviでしょうか? とにかく、どのviバージョンが他のバージョンのフォークであり、どのバージョンが独立した開発ですか?UNIXに似た「家系図」はありますか?

2
viで(vimではなく)A、B、C、Dを表示する矢印キーを修正
私はvimに私が追加できることを知っています set nocompatible で.vimrc矢印キーが挿入モードではA、B、C、Dを表示することを回避します。 しかし、私はvi バージョン4.0(グリッター)12/25/06を使用しています。 同じ動作を取得するにはどうすればよいですか? ==編集==(1) 私が使用しているアーチのLinuxからviのバージョンこのことから構築されているCVSリポジトリを次のコマンドで(前回2007年2月24日をコミット): make PREFIX=/usr LIBEXECDIR=/usr/lib/ex PRESERVEDIR=/var/lib/ex \ TERMLIB=ncurses FEATURES="-DCHDIR -DFASTTAG -DUCVISUAL -DMB -DBIT8" そして、これらの3つのパッチ:fix-tubesize-short-overflow.patch、navkeys.patchおよびpreserve-dir.patch。 ==編集(2)== この問題は、LXTerminal 0.2.0、Termite 10-1、Tilda 1.2.4-1、Terminator 0.98-1、xterm 320-2で発生しますが、urxvt v9.21でもLinux仮想コンソールでも発生しません。 ==編集(3)== よると、単一のUNIX仕様左矢印、それぞれ以下のcapnameに対応して上向き矢印、右矢印、下矢印、: 、、kcub1 と。これらのcapterms からのterminfoエントリを比較すると、以下が得られます。kcud1kcuf1kcuu1xtermrxvt-unicode-256color $ infocmp xterm rxvt-unicode-256color | grep -E 'kcuf1|kcub1|kcud1|kcuu1' kcub1: '\EOD', '\E[D'. kcud1: '\EOB', '\E[B'. kcuf1: '\EOC', …

3
nviや元のviで複数回元に戻すことはできますか?
Vimのないシステムで、デフォルトnvi(BSDシステム)またはオリジナルvi(Arch Linux)を使用することがあります。 かなりの違いがありますが、最大のイライラは、最後の操作しか取り消せ ないことです。もう一度押すとu「やり直し」になります。 これを機能させる方法はありますか?


2
exコマンドを使用して、2つの行が同一かどうかを確認しますか?
私はこの質問を見ていて、純粋に POSIX を使用sedする私の答えを どのように実装できるのか疑問に思いました。ex 秘訣はsed、ホールドスペースとパターンスペースを比較して(とG;/^\(.*\)\n\1$/{do something})が完全に等しいかどうかを確認することは できますが、ではそのようなテストを行う方法がないことですex。 Vim Yでは、最初の行をアンクしてから入力 :2,$g/&lt;C-r&gt;0/dして、指定したことをほぼ実行できます。ただし、最初の行に非常に単純な英数字のテキスト以外が含まれている場合、行は正規表現としてダンプされるので、これは実際に不自然になります。 、比較のための単なる文字列ではありません。(最初の行にスラッシュが含まれている場合、行の残りの部分はコマンドとして解釈されます!) したがってmyfile、最初の行と同じであるすべての行を削除したい場合(ただし、最初の行は削除しない場合)は、どのように使用できexますか?それについて、私はそれをどのように使用できviますか? 別の行と完全に一致する行を削除するPOSIXの方法はありますか? おそらくこの架空の構文のようなもの: :2,$g/**lines equal to "0**/d

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