FreeBSD上的vim对箭头键和其他类似vi的行为没有正确反应


9

我试图在FreeBSD上使用vim(通过Linux xterm兼容终端上的ssh)。但是,vim的行为类似于现成的vi。例如,它对删除键不起作用,在插入模式下插入F字符而不是向上键等。

在FreeBSD X11上没有安装。

编辑:按要求我张贴vim --version

# vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jul 28 2010 11:48:54)
Included patches: 1-6, 8-35, 37-48, 50-70, 73, 75-87, 90-92, 94-100, 102-137, 139-149, 151-171,     173-190, 192-193, 195-203, 206-211, 213-215, 217-218, 220-232, 234-246, 251-259, 261-301, 303-319, 321-322, 324-335, 337-351, 353-361, 363, 366-371, 373, 375-376, 378-383, 385-387, 389-398, 401-402, 404-411
Compiled by root@enterprise.piechotka.com.pl
Big version without GUI.  Features included (+) or not (-):
+arabic +autocmd -balloon_eval -browse ++builtin_terms +byte_offset +cindent 
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
+cryptv +cscope +cursorshape +dialog_con +diff +digraphs -dnd -ebcdic 
+emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path 
+float +folding -footer +fork() -gettext -hangul_input +iconv +insert_expand 
+jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap 
+menu +mksession +modify_fname +mouse -mouseshape +mouse_dec -mouse_gpm 
-mouse_jsbterm +mouse_netterm +mouse_sysmouse +mouse_xterm +multi_byte 
+multi_lang -mzscheme -netbeans_intg -osfiletype +path_extra -perl +postscript 
+printer -profile -python +quickfix +reltime +rightleft -ruby +scrollbind 
+signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax 
+tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse 
+textobjects +title -toolbar +user_commands +vertsplit +virtualedit +visual 
+visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup 
-X11 -xfontset -xim -xsmp -xterm_clipboard -xterm_save 
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/usr/local/share/vim"
Compilation: cc -c -I. -Iproto -DHAVE_CONFIG_H   -I/usr/local/include  -O2 -pipe -fno-strict-aliasing  -D_FORTIFY_SOURCE=1        
Linking: cc   -L/usr/local/lib -o vim       -lm -ltermlib -liconv  

您在Linux机器上使用什么键盘映射?
gvkv

英国(在/etc/conf.d/keymaps中设置)。在X11上+一些自定义。我使用gnome-terminal。
Maciej Piechotka 2010年

有什么不赞成的理由吗?
Maciej Piechotka '16

Answers:


8

这通常是终端设置问题。在FreeBSD端检查$ TERM环境变量,并检查本地终端设置是什么。这几乎可以肯定是箭头键的问题。

除此之外,请确保已应用标准设置的“ unbreak my vim” .vimrc设置。

set nocompat
set backspace=eol,start,indent

如果确定终端设置正确,但是仍然有退格键问题,请查看vim的帮助

:help fixdel

7

在使用Linux之后,我最近才安装了FreeBSD 8.2服务器,而对VI则完全感到沮丧。问题在于FreeBSD的VI默认设置与大多数Linux发行版完全不同。

感谢踩到以下页面:http : //jmcpherson.org/vimrc.html,这是我设置.vimrc文件的方法,以使VI以我惯常的方式工作:

set nocompatible
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set showmatch
set guioptions-=T
set vb t_vb=
set ruler
set nohls
set incsearch
set virtualedit=all
set bs=2

我用nano文本编辑器制作文件,因为VI给我带来了很多麻烦。

对于不熟悉VI的任何人,只需在您的主目录中创建一个名为.vimrc的文本文件,然后将代码框的内容粘贴并保存。或者,您可以直接在VI中尝试这些选项中的任何一个,方法是先键入a :然后输入选项,然后按:set rulerEnter。


在我解释这个问题时,似乎他不仅在询问删除键,还是在插入模式下输入字母的箭头键。在我看来,他是第一次使用FreeBSD的Linux用户,并且与大多数Linux发行版中使用的标准默认设置相比,对VI默认设置感到沮丧。我发布的选项将使VI正常工作,就像在安装vim增强的Linux中一样。因此,我认为这是对已接受答案的一个很好的补充,而且也无需弄乱终端设置(至少我不需要这样做)。希望我的信息可以帮助其他人。
本·男爵

3

您是在键入“ vim”,还是假设键入“ vi”会运行Vim?

在FreeBSD上,命令“ vi”可能会使您获得nvi


我正在输入vim。
Maciej Piechotka

在终端中使用:输入-a vi和类型-a vim之后:ls -ld / usr / bin / vi和ls -ld / usr / bin / vim以查看是否存在符号链接。
bitek

which vim- > /usr/local/bin/vimwhich vi- > /usr/bin/vi。我没有type->没有这样的命令。没有一个是符号链接。
Maciej Piechotka

“类型”是Bash内置的。“ type -p”与“ which”是同一件事,而“ type -a”只是对它的扩展。您可以发布“ vim --version”的输出吗?
沃伦·杨

发表在主要帖子
Maciej Piechotka 2010年

1

我的猜测可能是此问题的可能原因:

  1. 可能有人错误地将vim设置为类似于vi,这可能是在您的vimrc文件中。
    set compatible
  2. 您的vim指向原始的vi二进制文件。

如前所述,它不是指向。我没有任何vimrc文件或类似文件。
Maciej Piechotka 2010年

@Maciej,但是freebsd确实设置了任何默认值。如果我为每个发行版都花了不少钱,就搞乱了vim的默认设置...您读过:h兼容吗?您检查了freebsd可能具有的vimrc文件吗?
xenoterracide 2010年

@Maciej:您检查.vimrc吗?
Hemant

我没有.vimrc
Maciej Piechotka 2010年

1

安装vim之后我要做的第一件事:

cp ${LOCALBASE:-"/usr/local"}/share/vim/vim*/vimrc_example.vim ~/.vimrc

除了我设置了background = dark之外,大多数默认设置都是合理的。


谢谢你 它为我解决了很多问题。当然,它还有很多额外的东西,但这是一个很好的起点。
Beatgammit
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.