vim на FreeBSD не реагує правильно на клавіші зі стрілками та на інші подібні форми поведінки


9

Я намагався використовувати vim на FreeBSD (через ssh на Linux-сумісному терміналі xterm). Однак vim поводиться схоже на vi-out-out. Наприклад, він не реагує на клавішу видалення, вставляє символ 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

uk (встановлено в /etc/conf.d/keymaps). У X11 uk + деякі налаштування. Я використовую gnome-термінал.
Maciej Piechotka

Будь-яка причина для голосування?
Maciej Piechotka

Відповіді:


8

Це, як правило, проблема встановлення терміналу. Перевірте змінну середовища $ TERM на стороні FreeBSD і перевірте, що таке ваш локальний термінал. Це майже напевно проблема із клавішами зі стрілками.

На додаток до цього переконайтеся, що застосовано стандартний набір параметрів .vimrc "unbreak my vim".

set nocompat
set backspace=eol,start,indent

Якщо ви впевнені, що налаштування терміналу правильні, але у вас все ще виникають проблеми із зворотним простором, перегляньте допомогу vim

:help fixdel

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

Я використовував наноредактор тексту, щоб зробити файл, тому що VI доставляв мені стільки проблем.

Для всіх, хто не знайомий з VI, просто створіть текстовий файл у домашній директорії під назвою .vimrc та вставте вміст у поле коду вище та збережіть. Або ви можете спробувати будь-який із цих варіантів прямо у VI, ввівши :опцію тоді, тобто :set rulerнатиснувши клавішу Enter.


Коли я інтерпретую питання, схоже, він не просто запитував про клавішу видалення або просто клавіші зі стрілками, набираючи літери у режимі вставки. Мені здається, що він користувач Linux, який вперше використовує FreeBSD, і розчарується за замовчуванням VI порівняно зі стандартними типовими настройками, які використовуються в більшості дистрибутивів Linux. Опубліковані вами параметри дозволять VI працювати так само, як це зазвичай робиться в Linux, коли встановлюється vim-розширена версія. Тож я думаю, що це гарне доповнення до прийнятої відповіді, а також немає необхідності возитися з налаштуваннями терміналу (принаймні, мені не потрібно було). Сподіваюся, моя інформація допомагає іншим.
Бен Барон

3

Ви набираєте "vim" чи припускаєте, що введення "vi" працює Vim?

У FreeBSD команда "vi", ймовірно, отримає вам nvi .


Я набираю vim.
Maciej Piechotka

У терміналі використовуйте: type -a vi та type -a vim Після цього: ls -ld / usr / bin / vi та ls -ld / usr / bin / vim, щоб побачити, чи є символічне посилання.
бітек

which vim-> /usr/local/bin/vim, which vi-> /usr/bin/vi. У мене немає type-> такої команди немає. Жодна символьна посилання.
Maciej Piechotka

"type" - це вбудований Bash. "type -p" - це те саме, що "that", а "type -a" просто розширює це. Чи можете ви розмістити вихід "vim --version"?
Воррен Янг

Опубліковано в головному дописі
Мацей П'єхотка

1

Моя здогадка, наступна може стати можливою причиною цього питання:

  1. Можливо, у вашому файлі vimrc помилково хтось встановив, що vim поводиться як vi.
    set compatible
  2. Ваша vim вказує на оригінальний vi binary.

Як зазначено, це не вказує. У мене немає жодного vimrcабо подібного файлу.
Мацей П'єхотка

@Maciej, але параметр freebsd встановлює будь-які параметри за замовчуванням. Якби у мене був нікель для кожного дистрибутива, який накрутив параметри vim ... Ви читали: h сумісний? Ви перевірили файл vimrc, який, мабуть, має freebsd?
ксенотеррацид

@Maciej: ти перевірив на .vimrc?
Хемант

У мене немає .vimrc
Maciej Piechotka

1

Перше, що я роблю після встановлення vim:

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

Це має більшість розумних за замовчуванням, за винятком того, що я встановив background = dark.


Дякую за це Це зафіксувало багато речей для мене. Звичайно, є багато зайвих речей, але це хороша відправна точка.
beatgammit
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.