Ystk(ヨシタカ)が気になった事や日々の記録をメモするためのブログです。

Linux

viで矢印が「ABCD」になる問題を解決

投稿日:

現在、VaioをWindows10とUbuntuでデュアルブートして使用しています。
Ubuntuのviを使用していたところ、「i」でインサートモードに切り替えた際、矢印キーやHOMEキーなどを押すと「ABCD」などのアルファベットが入力されてしまって困ったので、解決方法を書きます!

viのバージョン確認

vi --version

Ubuntuでバージョンを調べると以下のように表示されます。

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:44:48)
Included patches: 1-1689
Extra patches: 8.0.0056
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by pkg-vim-maintainers@lists.alioth.debian.org
Small version without GUI.  Features included (+) or not (-):
+acl             -farsi           -mouse_sgr       -tag_any_white
-arabic          -file_in_path    -mouse_sysmouse  -tcl
-autocmd         -find_in_path    -mouse_urxvt     +terminfo
-balloon_eval    -float           -mouse_xterm     -termresponse
-browse          -folding         +multi_byte      -textobjects
+builtin_terms   -footer          -multi_lang      -timers
-byte_offset     +fork()          -mzscheme        -title
-channel         -gettext         -netbeans_intg   -toolbar
-cindent         -hangul_input    +packages        -user_commands
-clientserver    +iconv           -path_extra      +vertsplit
-clipboard       -insert_expand   -perl            -virtualedit
-cmdline_compl   -job             -persistent_undo +visual
+cmdline_hist    +jumplist        -printer         -visualextra
-cmdline_info    -keymap          -profile         -viminfo
-comments        -langmap         -python          -vreplace
-conceal         -libcall         -python3         +wildignore
-cryptv          -linebreak       -quickfix        -wildmenu
-cscope          -lispindent      -reltime         +windows
-cursorbind      -listcmds        -rightleft       +writebackup
-cursorshape     -localmap        -ruby            -X11
-dialog          -lua             -scrollbind      +xfontset
-diff            -menu            -signs           -xim
-digraphs        -mksession       -smartindent     -xsmp
-dnd             -modify_fname    -startuptime     -xterm_clipboard
-ebcdic          -mouse           -statusline      -xterm_save
-emacs_tags      -mouse_dec       -sun_workshop    -xpm
-eval            -mouse_gpm       -syntax          
+ex_extra        -mouse_jsbterm   -tag_binary      
-extra_search    -mouse_netterm   -tag_old_static  
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security **-DTINY_VIMRC** -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1      
Linking: gcc   -Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim    -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo  -lselinux -lacl -lattr -ldl

「Small version」「-DTINY_VIMRC」の表示がされている場合は、「vim-tiny」がインストールされています。

vi互換モードが原因

Ubuntuでは、viは「vim-tiny」が標準でインストールされています。「vim-tiny」はvimの中で最小構成でビルドされたvimです。
最近のUNIX系OSであれば、「vi」「vim」のどちらで実行してもvimで実行されます。

そして、「ABCD」が入力されてしまうのは「vi互換モード」が動作している場合に発生してしまうので、「vi互換モード」にならないようにしてあげる必要があります。
解決方法としては、「vim-tiny」をそのまま使うか「vim」を入れ直すかの2つ方法があるので簡単に説明します!

解決方法1:「vim-tiny」をそのまま使う方法

「vim-tiny」ではvi互換モードになってしまうのが原因なので、.vimrcを作成し「set nocompatible」を記述します。

echo "set nocompatible" >> ~/.vimrc

解決方法2:「vim」を入れ直す方法

こちらも方法としては簡単で、「vim-tiny」が入っているのが問題なので、入れ直してしまおうというものです。

sudo apt-get install vim

「vim」を入れ直し、「vi –version」でバージョンの確認をしてみます。

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:44:48)
適用済パッチ: 1-1689
追加拡張パッチ: 8.0.0056
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by pkg-vim-maintainers@lists.alioth.debian.org
Huge 版 without GUI.  機能の一覧 有効(+)/無効(-)
+acl             +farsi           +mouse_netterm   +tag_binary
+arabic          +file_in_path    +mouse_sgr       +tag_old_static
+autocmd         +find_in_path    -mouse_sysmouse  -tag_any_white
-balloon_eval    +float           +mouse_urxvt     -tcl
-browse          +folding         +mouse_xterm     +terminfo
++builtin_terms  -footer          +multi_byte      +termresponse
+byte_offset     +fork()          +multi_lang      +textobjects
+channel         +gettext         -mzscheme        +timers
+cindent         -hangul_input    +netbeans_intg   +title
-clientserver    +iconv           +packages        -toolbar
-clipboard       +insert_expand   +path_extra      +user_commands
+cmdline_compl   +job             -perl            +vertsplit
+cmdline_hist    +jumplist        +persistent_undo +virtualedit
+cmdline_info    +keymap          +postscript      +visual
+comments        +langmap         +printer         +visualextra
+conceal         +libcall         +profile         +viminfo
+cryptv          +linebreak       -python          +vreplace
+cscope          +lispindent      +python3         +wildignore
+cursorbind      +listcmds        +quickfix        +wildmenu
+cursorshape     +localmap        +reltime         +windows
+dialog_con      -lua             +rightleft       +writebackup
+diff            +menu            -ruby            -X11
+digraphs        +mksession       +scrollbind      -xfontset
-dnd             +modify_fname    +signs           -xim
-ebcdic          +mouse           +smartindent     -xsmp
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard
+eval            +mouse_dec       +statusline      -xterm_save
+ex_extra        +mouse_gpm       -sun_workshop    -xpm
+extra_search    -mouse_jsbterm   +syntax          
      システム vimrc: "$VIM/vimrc"
      ユーザー vimrc: "$HOME/.vimrc"
   第2ユーザー vimrc: "~/.vim/vimrc"
       ユーザー exrc: "$HOME/.exrc"
       省略時の $VIM: "/usr/share/vim"
コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H   -Wdate-time  -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1      
リンク: gcc   -Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim        -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl     -L/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu -lpython3.5m -lpthread -ldl -lutil -lm 

「Huge 版」という風になっていればOKです!
Hugeはvimのバージョンの中で、たくさんの機能が含まれています。

これでインサートモード時に矢印キーが使えない煩わしさから開放され、快適にviが使用できるようになります!

-Linux
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

UbuntuにVirtualBoxとVagrantをインストールする方法

WordPressの構築にVCCWを使用しているので、Linux(Ubuntu)環境にもVCCWを使用するためにVirtualBoxとVagrantのインストールを行いましたので、その手順を紹介します …

no image

Ubuntuのvisudoでnanoからvimに切り替える

visudoで設定を変更しようとした際、nanoが立ち上がった。 CentOSの時には普通にvimが立ち上がった気がするのだが。 visudoなのに、これじゃあnanosodoじゃないか!っていうツッ …

no image

Ubuntuの起動時に「システムプログラムの問題が見つかりました」が表示される

システムをアップデートをしたら、起動時に「システムプログラムの問題が見つかりました」が表示されるようになったので解決方法を調べました。 原因は? 今回の原因はクラッシュ時のレポートファイルが、起動時に …

no image

apt-get updateでGPGエラーが出た時の対処法

apt-get updateを実行した際、GPGエラーが出た時の対処方法を解説します。 今回、SMPlayerのリポジトリで下記の様にGPGエラーが発生しました。 W: GPG エラー: http:/ …

no image

GIMPをPhotoshop風に変更してみる

LinuxではAdobe CCが使えないため、Photoshopの代わりにGIMPを使ってます。 Adobe製品に慣れている自分には、GIMPはものすごく使いにくいです。 そこでGIMPをPhotos …