vim на FreeBSD неправильно реагирует на клавиши со стрелками и другие поведения, подобные vi

9

Я пытался использовать vim на FreeBSD (через ssh на xterm-совместимом терминале Linux). Однако 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 UK + некоторые настройки. Я использую гном-терминал.
Мацей Печотка
Есть ли причина для понижения?
Мацей Пехотка

Ответы:

8

Как правило, это проблема настройки терминала. Проверьте переменную среды $ TERM на стороне FreeBSD и проверьте настройки локального терминала. Это почти наверняка проблема с клавишами со стрелками.

В дополнение к этому, убедитесь, что у вас есть стандартный набор параметров "unbreak my vim" .vimrc.

set nocompat
set backspace=eol,start,indent

Если вы уверены, что настройки терминала верны, но у вас все еще есть проблемы с реверсом, обратитесь к справке vim

:help fixdel
user455
источник
7

Я только недавно настроил сервер FreeBSD 8.2 после работы в основном с Linux, и у меня было точно такое же разочарование по поводу 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, набрав :затем параметр, то есть :set rulerнажав Enter.

Бен Барон
источник
Когда я интерпретирую вопрос, похоже, он не просто спрашивал о клавише удаления или просто клавишах со стрелками, набирающих буквы в режиме вставки. Мне кажется, что он - пользователь Linux, впервые использующий FreeBSD и разочарованный настройками по умолчанию VI по сравнению со стандартными настройками по умолчанию, используемыми в большинстве дистрибутивов Linux. Параметры, которые я разместил, приведут к тому, что VI будет работать так же, как обычно в Linux при установке vim-extended. Поэтому я думаю, что это хорошее дополнение к принятому ответу, а также нет необходимости возиться с настройками терминала (по крайней мере, мне это не нужно). Надеюсь, моя информация поможет другим.
Бен Барон
3

Вы вводите «vim» или предполагаете, что «vi» запускает Vim?

В FreeBSD команда "vi", вероятно, даст вам nvi .

Уоррен Янг
источник
Я набираю vim.
Мацей Пехотка
В терминале используйте: введите -a vi и введите -a vim После этого: ls -ld / usr / bin / vi и ls -ld / usr / bin / vim, чтобы увидеть, есть ли символическая ссылка.
bitek
which vim-> /usr/local/bin/vim, which vi-> /usr/bin/vi. У меня нет type-> нет такой команды. Нет символической ссылки.
Maciej Piechotka
«type» - это встроенная функция Bash. «type -p» - это то же самое, что «which», а «type -a» только расширяет это. Можете ли вы опубликовать вывод "vim --version"?
Уоррен Янг
размещено в основном сообщении
Maciej Piechotka
1

мое предположение следующее может быть возможной причиной этой проблемы:

  1. Может быть, в вашем файле vimrc по ошибке кто-то настроил vim вести себя как vi.
    set compatible
  2. Ваш vim указывает на оригинальный двоичный файл vi.
Hemant
источник
Как заявлено это не указывает. У меня нет ни одного vimrcили похожего файла.
Мацей Пехотка
@Maciej, но freebsd устанавливает значения по умолчанию. Если бы у меня был никель для каждого дистрибутива, который испортил vim по умолчанию ... вы читали: h совместимый? Вы проверили файл vimrc, который, вероятно, есть у freebsd?
ксенотеррацид
@Maciej: ты проверял .vimrc?
Hemant
У меня нет .vimrc
Maciej Piechotka
1

Первое, что я делаю после установки vim:

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

Это имеет самые нормальные значения по умолчанию, за исключением того, что я установил background = dark.

Мел
источник
Спасибо за это. Это исправило много вещей для меня. Конечно, у него много лишних вещей, но это хорошая отправная точка.
beatgammit