vim 삽입 모드에서 화살표 키를 영구적으로 사용하는 방법은 무엇입니까?

vim 삽입 모드에서 화살표 키를 영구적으로 사용하는 방법은 무엇입니까?

내가 지금 사용하고 있는 것을 사용하면 vim을 사용하여 코딩하기 위해 ssh를 통해 두 개의 별도 Linux 터미널에 로그인할 수 있습니다. 첫 번째 SSH 로그인은 내 기본 로그인이며 어떤 이유로 vim으로 열고 프로그램을 작성하면 삽입 모드에서 화살표 키를 사용하여 탐색할 수 있습니다. 화살표 키를 사용할 때는 Esc 키를 누를 필요가 없습니다. 위쪽/아래쪽/왼쪽/오른쪽 화살표 키만 누르면 삽입 모드에 있는 동안 커서가 완벽하게 움직입니다. 어떤 이유로 화살표 키 중 하나를 누르고 있으면 h/j/k/l을 누르는 것보다 커서가 훨씬 빠르게 이동합니다(이런 일이 발생하는 이유는 확실하지 않음).

내 문제는 보조 Linux SSH 로그인(내가 사용하는 기본 Linux SSH와 거의 동일함)에서 이 기능을 다시 만들 수 없다는 것입니다. :use arrow keys명령 모드에서 입력할 수 있는 명령(예를 들어)이나 이를 영구적으로 만들기 위해 수행할 수 있는 다른 명령이 있어야 한다고 생각합니다 .

사람들이 vim을 탐색하기 위해 화살표 키를 사용하는 것을 매우 싫어한다는 것을 알고 있지만 현재는 특정한 이유 때문에 필사적으로 알아내려고 합니다. 내가 찾은 대부분의 기사와 스레드는 유사한 동작을 모방하는 키보드 단축키를 보여 주지만 특히 삽입 모드에서 일반 화살표 키의 사용을 재현하려고 합니다. 이것이 가능한지, 또는 왜 이것이 하나의 Linux SSH 터미널에서는 발생하지만 다른 Linux 터미널에서는 발생하지 않는지 아는 사람이 있습니까? 저는 참고용으로 M1 MacBook Air를 사용하고 있습니다.

편집하다: 리눅스 메인 터미널

:version기본 Linux 터미널에서의 실행 결과는 다음과 같습니다.

:version
VIM - Vi IMproved 8.1 (2018 May 18, compiled Feb 01 2022 09:16:32)
Included patches: 1-2269, 3612, 3625, 3669, 3741
Modified by [email protected]
Compiled by [email protected]
Huge version with GTK3 GUI.  Features included (+) or not (-):
+acl               +clipboard         +dnd               +gettext           +localmap          +mouse_urxvt       +profile           +statusline        +timers            +windows
+arabic            +cmdline_compl     -ebcdic            -hangul_input      +lua               +mouse_xterm       -python            -sun_workshop      +title             +writebackup
+autocmd           +cmdline_hist      +emacs_tags        +iconv             +menu              +multi_byte        +python3           +syntax            +toolbar           +X11
+autochdir         +cmdline_info      +eval              +insert_expand     +mksession         +multi_lang        +quickfix          +tag_binary        +user_commands     -xfontset
-autoservername    +comments          +ex_extra          +job               +modify_fname      -mzscheme          +reltime           -tag_old_static    +vartabs           +xim
+balloon_eval      +conceal           +extra_search      +jumplist          +mouse             +netbeans_intg     +rightleft         -tag_any_white     +vertsplit         +xpm
+balloon_eval_term +cryptv            -farsi             +keymap            +mouseshape        +num64             -ruby              +tcl               +virtualedit       +xsmp_interact
+browse            +cscope            +file_in_path      +lambda            +mouse_dec         +packages          +scrollbind        +termguicolors     +visual            +xterm_clipboard
++builtin_terms    +cursorbind        +find_in_path      +langmap           +mouse_gpm         +path_extra        +signs             +terminal          +visualextra       -xterm_save
+byte_offset       +cursorshape       +float             +libcall           -mouse_jsbterm     +perl              +smartindent       +terminfo          +viminfo
+channel           +dialog_con_gui    +folding           +linebreak         +mouse_netterm     +persistent_undo   +sound             +termresponse      +vreplace
+cindent           +diff              -footer            +lispindent        +mouse_sgr         +postscript        +spell             +textobjects       +wildignore
+clientserver      +digraphs          +fork()            +listcmds          -mouse_sysmouse    +printer           +startuptime       +textprop          +wildmenu
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu
/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/harfbuzz -I/usr/include/atk-1.0 -I/usr/include/cair
o -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib
/x86_64-linux-gnu/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/build/vim-9EpYYi/vim-8.1.2269=. -fstack-protector-strong -Wformat -Werror=format-security -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTI
FY_SOURCE=1
Linking: gcc   -Wl,-E  -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim   -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0
-lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux  -lcanberra -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L
/usr/local/lib  -L/usr/lib/x86_64-linux-gnu/perl/5.30/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.8/config-3.8-x86_64-linux-gnu -lpython3.8 -lcrypt -lpthread -ldl -lutil -lm -lm -L/usr/lib/
x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lm

결과 :verbose set compatible?compatible

보조 Linux 터미널

:version보조 Linux 터미널에서 작업을 수행하면 다음과 같은 결과가 발생합니다.

:version
VIM - Vi IMproved 8.1 (2018 May 18, compiled Feb 01 2022 09:16:32)
Included patches: 1-2269, 3612, 3625, 3669, 3741
Modified by [email protected]
Compiled by [email protected]
Huge version with GTK3 GUI.  Features included (+) or not (-):
+acl               +clipboard         +dnd               +gettext           +localmap          +mouse_urxvt       +profile           +statusline        +timers            +windows
+arabic            +cmdline_compl     -ebcdic            -hangul_input      +lua               +mouse_xterm       -python            -sun_workshop      +title             +writebackup
+autocmd           +cmdline_hist      +emacs_tags        +iconv             +menu              +multi_byte        +python3           +syntax            +toolbar           +X11
+autochdir         +cmdline_info      +eval              +insert_expand     +mksession         +multi_lang        +quickfix          +tag_binary        +user_commands     -xfontset
-autoservername    +comments          +ex_extra          +job               +modify_fname      -mzscheme          +reltime           -tag_old_static    +vartabs           +xim
+balloon_eval      +conceal           +extra_search      +jumplist          +mouse             +netbeans_intg     +rightleft         -tag_any_white     +vertsplit         +xpm
+balloon_eval_term +cryptv            -farsi             +keymap            +mouseshape        +num64             -ruby              +tcl               +virtualedit       +xsmp_interact
+browse            +cscope            +file_in_path      +lambda            +mouse_dec         +packages          +scrollbind        +termguicolors     +visual            +xterm_clipboard
++builtin_terms    +cursorbind        +find_in_path      +langmap           +mouse_gpm         +path_extra        +signs             +terminal          +visualextra       -xterm_save
+byte_offset       +cursorshape       +float             +libcall           -mouse_jsbterm     +perl              +smartindent       +terminfo          +viminfo
+channel           +dialog_con_gui    +folding           +linebreak         +mouse_netterm     +persistent_undo   +sound             +termresponse      +vreplace
+cindent           +diff              -footer            +lispindent        +mouse_sgr         +postscript        +spell             +textobjects       +wildignore
+clientserver      +digraphs          +fork()            +listcmds          -mouse_sysmouse    +printer           +startuptime       +textprop          +wildmenu
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu
/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/harfbuzz -I/usr/include/atk-1.0 -I/usr/include/cair
o -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib
/x86_64-linux-gnu/glib-2.0/include -Wdate-time  -g -O2 -fdebug-prefix-map=/build/vim-9EpYYi/vim-8.1.2269=. -fstack-protector-strong -Wformat -Werror=format-security -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTI
FY_SOURCE=1
Linking: gcc   -Wl,-E  -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim   -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0
-lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux  -lcanberra -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L
/usr/local/lib  -L/usr/lib/x86_64-linux-gnu/perl/5.30/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.8/config-3.8-x86_64-linux-gnu -lpython3.8 -lcrypt -lpthread -ldl -lutil -lm -lm -L/usr/lib/
x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lm

결과 :verbose set compatible?nocompatible Last set from /usr/share/vim/vim81/debian.vim line 3

관련 정보