(n)vi 1.79のexモード( ':'コマンドライン)でVimのように文字を削除したり、 'バックスペース'が機能するようにするにはどうすればよいですか?
「バックスペース」と「削除」はカーソルを左に移動するだけで、新しいキー入力が挿入されずに上書きされます。これは挿入モードと同じですが、「Esc」を使用してカーソル「バックスペース」の後のすべての項目を消去できます。するシェルのコマンドラインから消去します。
私はfvwmのxtermで(n)viを使用していますが、各xtermは新しいOpenBSD 7.1インストールに含まれています。 Vimとそのvi
コマンド(例:set互換)は(n)viとは異なります。私が検索したいくつかの場所:
ベストアンサー1
これはOpenBSDでのex-viの歴史的動作
(リポジトリusr.bin/vi/vi/v_txt.c
の下src
):
/* * Historically, vi didn't replace the erased characters with * <blank>s, presumably because it's easier to fix a minor * typing mistake and continue on if the previous letters are * already there.
削除された文字を常に消去するには、パッチを適用してvi
再コンパイルする必要があります。この時点で、以下を実行します。自分だけのフォークのvi
:
diff --git vi/v_txt.c vi/v_txt.c
index c1d95e8..9ea1954 100644
--- vi/v_txt.c
+++ vi/v_txt.c
@@ -1014,8 +1014,7 @@ leftmargin: tp->lb[tp->cno - 1] = ' ';
* point in the screen. So, if incrementally searching, erase
* the erased characters from the screen.
*/
- if (FL_ISSET(is_flags, IS_RUNNING))
- tp->lb[tp->cno] = ' ';
+ tp->lb[tp->cno] = ' ';
/*
* Increment overwrite, decrement ai if deleted.
vim
あるいは、他のプラットフォームとかなり互換性のあるインストールを行うこともできます。vim
doas pkg_add vim