vi
エディターの挿入モードで矢印キーを使用しようとすると、次の文字がエディターに挿入されます。
この問題の解決にご協力ください。
ホームディレクトリに.vimrc
ファイルがまだない場合は、これを使用して作成します。
vim ~/.vimrc
この行をファイルの先頭に追加します。
set nocompatible
ファイルを保存すると、問題が解決するはずです。 :)
vimをインストール->これで問題が解決します。
Sudo apt-get install vim
YouTubeやWeb全般には、多くの優れたvim/viチュートリアルがあります。問題については、 こちらをご覧ください
次に、通常どおりにファイルを開きます:
vi desired-file
vi
の場合、クリックすると i Insertテキストへのコマンドをアクティブにします。
このコマンドを使用すると、ファイルにテキストを挿入できます。
そして、クリックすると:
Tillこのコマンドを無効にします。vi
のコマンドを無効にするには:をクリックするだけです Esc
そして、矢印キーの通常の使用に戻ります:
参考までに、いくつかのvi
コマンドがあります。
これから source 。
:x
Return viを終了し、変更されたファイルを元の呼び出しで指定されたファイルに書き出します:wq
Return viを終了し、変更されたファイルを元の呼び出しで指定されたファイルに書き出します:q
Return quit(またはexit)vi:q!
Return このvi呼び出しの最新の変更が保存されていない場合でも、viを終了します
↓ moveカーソルを1行下に移動
↓ moveカーソルを1行上に移動
← moveカーソルを1文字左
→ moveカーソルを1文字右に移動
u
undoあなたがしたことは何でも;簡単なトグル.
redoあなたがしたことは何でも
i
insertカーソルの前のテキスト、まで Esc ヒットI
insert現在の行の先頭にあるテキスト、まで Esc ヒットa
appendカーソルの後のテキストまで、 Esc ヒットA
appendテキストを現在の行の終わりまで、まで Esc ヒットo
openそして、現在の行の下の新しい行にテキストを入れます。 Esc ヒットO
openそして、現在の行の上の新しい行にテキストを入れます。 Esc ヒット
r
replaceカーソルの下の1文字(いいえ Esc 必要)cw
change現在のWordを新しいテキストで、カーソルの下の文字から始めて、 Esc ヒットx
deleteカーソルの下の1文字Nx
deleteカーソルの下の文字から始まるN文字dw
deleteカーソルの下の文字で始まる単一の単語C
change(現在の行の文字を(置換)まで、 Esc ヒットD
delete現在のカーソル位置から始まる残りの行
dd
delete現在の行全体Ndd
delete現在の行から始まるN行。たとえば、5ddは5行を削除しますyy
copy(ヤンク、カット)現在の行をバッファーに入れるNyy
copy(yank、cut)現在の行を含む次のN行をバッファーにコピーしますp
pasteバッファー内の行を現在の行の後のテキストに貼り付けます
0
(ゼロ)moveカーソルを現在行(カーソルのある行)の先頭に移動$
moveカーソルを現在行の末尾に移動w
moveカーソルを次のWordの先頭に移動b
moveカーソルを前のWordの先頭に戻す:0
Return または1G
moveカーソルをファイルの最初の行に移動:n
Return またはnG
moveカーソルを行nに移動:$
Return またはG
moveカーソルをファイルの最終行に移動
/string
searchテキスト内の文字列の出現を前方に検索?string
searchテキスト内の文字列の出現を後方に検索n
move検索文字列の次の出現箇所へN
move次の検索文字列の反対方向への移動
編集モードで矢印を押すと文字の印刷を無効にするには、次のようにします
vi $HOME/.exrc
(ファイルが存在しない場合は作成します)、行set nocompatible
を追加して保存します。
Viエディターには次の3つのモードがあります。
Youuがファイルを開くと、デフォルトモードになります。テキストの特定の位置に移動する場合は、矢印キーを使用するか、 h、 j、 k、 l キー。これは、押していない場合にのみ機能することに注意してください i (または次のようなコマンドを入力する他の入力モード a、 A、 I)。
「B」の理由は、入力モードの矢印キーが矢印キーとして機能しないためです。 Esc いつでもデフォルトモードになります。入力モードに移行するタイミング i または a、そして押すだけでナビゲートする i キーを押して矢印キーを使用するか、 h、 j、 k、 l。
私はまったく同じ問題を抱えていましたが、ローカルマシンだけでなく、Win7 VMのcitrixレシーバー上のslesマシン上のPuTTY経由の接続でも同様でした。 Ubuntuの再インストール後にまったく同じ問題が発生した後、ローカルホストとリモートホストの両方が表示されます。
それを見つけた後
$ localectl list-keymaps
Couldn't find any console keymaps.
この奇妙なVIの動作の原因この問題を解決するパッケージconsole-dataをインストールしました!
Sudo apt-get install console-data
与えられた説明はすべて少し奇妙です。 viがありますが、vimはインストールされていません。
代替案の確認:/etc/alternatives/vi
→/usr/bin/vim.tiny
vi
はvim.tiny
であり、/etc/vim/vimrc.tiny
を使用します。
vimrc.tiny
には、次の行があります。
set compatible
これは、このファイルでほとんど唯一のものです。 /etc/vim/vimrc
では、nocompatible
を使用していることに注意してください。
したがって、vimをインストールするか、vimrc.tiny
ファイルを変更するか、次の行を含む独自の~/.vimrc
を作成します。
set nocompatible
注意:
他の投稿には良い情報がありますが、説明を試みた投稿はありませんwhyこの動作が発生しました。多くの人々は、将来これにつまずきます。また、以前の投稿のいずれかがあなたを助けた可能性が高いため、この質問を解決済みとしてマークできますか?
ここに説明があります:
Viは長い間使用されてきたエディターで、ルーツはUnixシステムにまで遡ります。これは優れたツールですが、繰り返し使用されており、現在では改善されています。 Vimは後で書かれたもので、その繰り返しです。人々は一般にviを「vim-minimal」と呼び、vimはviの「改善された」バージョンです。次のように考えることができます:viはコアであり、vimはそれを拡張します。
同様にどのように動作を発見したか:
この問題を発見するには、「i」を押して「insert」モードに入り、矢印キーを使用して正しい行と編集ポイントをナビゲートしました。これが予期しない文字の問題の原因です。
ソリューション1または2
1)vi someFile
viを使用しているときに、まず編集ポイントに移動してから、挿入モードに入ります。
2)vim someFile
単純にvimを最初から使用します。
マニュアル(manページ)を読んだり、ヘルプに-hを使用したりするのに十分なストレスはありません。シェルのパターンに調整すると、manページが親友になります。例:man vi
またはman vim
Vimがインストールされていることを確認します。
コンソールウィンドウを開き、次を実行します。
dpkg --list | grep vim
これに似たものが得られたら、vimを使い始めることができます。
~ $ dpkg --list | grep vim
ii vim 2:7.4.052-1ubuntu3 AMD64 Vi IMproved - enhanced vi editor
ii vim-common 2:7.4.052-1ubuntu3 AMD64 Vi IMproved - Common files
ii vim-runtime 2:7.4.052-1ubuntu3 all Vi IMproved - Runtime files
ii vim-tiny 2:7.4.052-1ubuntu3 AMD64 Vi IMproved - enhanced vi editor - compact version
コマンドプロンプトが何も返さない場合、vimはインストールされていません。以下の例を使用してリポジトリを更新し、vimをインストールします。
Sudo apt-get update
Sudo apt-get install vim
インターネットで何かを修正する方法を検索するときにのみviまたはvimを使用し、vim
と入力するのを忘れてしまうという偶然に、将来のために修正できる方法が1つあります。注意してください。エイリアスを使用してviをvimへの参照で上書きすると、まれに将来何を入力しても、その「おっと!」なしでvimを取得できます。瞬間。エイリアスは後でいつでも削除できます。
vim .bashrc
と入力します。 ~
のみの空行(またはalias
で始まる他の行(一緒にグループ化される)に移動し、iを押します。 キーを押して-insert-モードに入ります。独自の行に次のように入力します。
alias vi='vim'
Esc
を押してから、:wq
と入力します。次に、ファイルをリロードする必要があります。 source .bashrc
と入力すると、これらの編集を行った後に開く他のシェルは、.bashrcファイルを自動的にロードします。
これは、TERM
変数が原因の場合もあります。たとえば次のように設定します。
export TERM=xterm
一部のシステムでは、nocompatible
オプションを使用できないか、プラグインが矢印キーの機能を中断した場合に問題が解決しない場合があります。これは回避策です...
.exrc
ファイルを編集して、次の行を含めます。
map! ^[OA ^[ka
map! ^[OB ^[ja
map! ^[OC ^[la
map! ^[OD ^[ha
または、問題が通常モードでのみ存在する場合、次のようにnmap
に変更し、次のa
をスキップできます。
nmap! ^[OA ^[k
等々。
これらを作成するために必要なキーの組み合わせは次のとおりです(最初の組み合わせのみを示します)。
map! <CTRL-V><Up-Arrow> <CTRL-V><ESC>ka
これにより、編集モードから抜け出し、目的の方向に移動して、編集モードに戻ります。これは、エスケープシーケンスをリテラル<ESC> <O> <A>などのシーケンスとして読み取るViを克服するために必要です。
従来のviエディターは、矢印キー(... afair)を認識しません。 2つの解決策があります。
VIの場合、ファイル「〜/ .exrc」を作成または編集するか、VIMを作成または編集して、ファイル「〜/ .vimrc」を設定または行に追加します。
set nocompatible
この記事の執筆時点で、2番目に多く投票された項目に、なぜエントリが受け入れられなかったのか疑問に思う賞賛があります。その理由は、他のエディターのインストールを許可しないホストが存在するためです。その場合でも、vimには同じ効果がある場合があるため、上位2つのエントリから使用可能な情報がたくさんあります。ただし、どちらも100%正しい場合が100%正しい理由を明確にできれば幸いです。
何らかの理由で、Ubuntuは新しい18.04 VPSでユーザーrootのenvvar HOMEの初期化を省略しました。その場合、viは.vimrcファイルを見つけることができません。この問題は、通常のユーザー(/ home /)では発生しません。
変数を確認するには:
echo $HOME
この結果が空白行になる場合、変数は設定されていません。問題はなくなりました
export HOME=/root
コマンドを/root/.bashrcファイルに移動しました(これが通常どこに設定されるかわかりません)。
このマシンではmake sure
が必要でした
set nocompatible
last entry in ~/.vimrc
です。または、最後のエントリの少なくとも1つ、特にその後プラグインがロードされない。
HTH