У меня есть два удаленных сервера:
Сервер 1: Linux 2.6.18-238.12.1.el5PAE i686 / VIM - Vi IMproved - версия 7.0.237
Сервер 2: Linux 2.6.18-338.19.1.el5.lve0.8.36 x86_64 / VIM - Vi IMproved версия 7.0. 237
Когда я захожу на сервер 2 и использую vim для редактирования файла php
или .htaccess
файла, он имеет красивую цветовую подсветку. Ниже /etc/vimrc
файл на этом сервере.
Когда я ssh на сервер 1, цвет не появляется. Я попытался скопировать приведенный ниже код в мой файл ~ / .vimrc на сервере 1, но цветовой синтаксис не работает. Другие функции (как set nocompatible
) работают, но не цвета.
Почему цвет не работает на сервере 1, и как я могу проверить и исправить это? tput colors
на обоих терминалах возвращается 8
. Я попробовал :syntax on
и , :syntax enable
но это не помогает либо.
------------------------------------------------------------
Содержание /etc/vimrc
файла:
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
set fileencodings=utf-8,latin1
endif
set nocompatible " Use Vim defaults (much better!)
set bs=indent,eol,start " allow backspacing over everything in insert mode
"set ai " always set autoindenting on
"set backup " keep a backup file
set viminfo='20,\"50 " read/write a .viminfo file, don't store more
" than 50 lines of registers
set history=50 " keep 50 lines of command line history
set ruler " show the cursor position all the time
" Only do this part when compiled with support for autocommands
if has("autocmd")
augroup redhat
" In text files, always limit the width of text to 78 characters
autocmd BufRead *.txt set tw=78
" When editing a file, always jump to the last cursor position
autocmd BufReadPost *
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
\ exe "normal! g'\"" |
\ endif
augroup END
endif
if has("cscope") && filereadable("/usr/bin/cscope")
set csprg=/usr/bin/cscope
set csto=0
set cst
set nocsverb
" add any database in current directory
if filereadable("cscope.out")
cs add cscope.out
" else add database pointed to by environment
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
set csverb
endif
" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
syntax on
set hlsearch
endif
if &term=="xterm"
set t_Co=8
set t_Sb=%dm
set t_Sf=%dm
endif
: вывод версии
VIM - Vi IMproved 7.0 (2006 May 7, compiled Aug 4 2010 07:21:18)
Included patches: 1, 3-4, 7-9, 11, 13-17, 19-26, 29-31, 34-44, 47, 50-56, 58-64, 66-73, 75, 77-92, 94-107, 109, 202, 234-237
Compiled by <bugzilla@redhat.com>
Tiny 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 -diff -digraphs -dnd -ebcdic -emacs_tags -eval -ex_extra -extra_search -farsi
-file_in_path -find_in_path -folding -footer +fork() -gettext -hangul_input +iconv -insert_expand -jumplist -keymap -langmap -libcall -linebreak -lispindent -listcmds -localmap -menu -mksession -modify_fname -mouse -mouse_dec -mouse_gpm -mouse_jsbterm -mouse_netterm
-mouse_xterm +multi_byte -multi_lang -mzscheme -netbeans_intg -osfiletype -path_extra -perl -printer -profile -python -quickfix -reltime -rightleft -ruby -scrollbind -signs -smartindent -sniff -statusline -sun_workshop -syntax -tag_binary -tag_old_static -tag_any_white
-tcl +terminfo -termresponse -textobjects -title -toolbar -user_commands -vertsplit -virtualedit -visual -viminfo -vreplace +wildignore -wildmenu -windows +writebackup -X11 -xfontset -xim -xsmp -xterm_clipboard -xterm_save
system vimrc file: "/etc/virc"
user vimrc file: "$HOME/.vimrc"
user exrc file: "$HOME/.exrc"
fall-back for $VIM: "/usr/share/vim"
Compilation:
gcc -c -I. -Iproto -DHAVE_CONFIG_H -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2
Linking: gcc -L/usr/local/lib -o vim -lselinux -ltermcap -lacl
:set term
,:set filetype
и дает нам результат.Ответы:
Я подозреваю , что у вас есть
alias vim=vi
по прибытию~/.bashrc
. Попробуйте выполнить «настоящую» команду, а не псевдоним:Похоже, у вас работает CentOS. Убедитесь, что вы установили
vim-enhanced
пакет:источник
По выводу вашей версии vim вы можете сказать, что он vim-tiny и он не скомпилирован с
-syntax
опцией.Также вставьте
export TERM=xterm-256color
ваш bashrc, чтобы получить полную выгоду ...источник
Вы также можете использовать
sshfs
для монтирования ресурса, чтобы ваш локальный vim использовался для редактирования этих файлов.Vim также может редактировать удаленные файлы. Прелесть этого в том, что вы можете редактировать, не выходя из собственной настраиваемой и знакомой конфигурации vim.
vi scp://username@example.com/path/to/file
источник
Существует особый случай, когда ваш клиентский терминал не устанавливает цвет TERM, а вместо этого устанавливает COLORTERM. Сделай это:
На клиентском компьютере, добавить
SendEnv COLORTERM
в/etc/ssh/ssh_config
, и на сервере, добавьтеAcceptEnv COLORTERM
в/etc/ssh/sshd_config
.Перезагрузите sshd (
service sshd reload
) и переподключите.Если ваш сервер CentOS / RHEL и имеет
/etc/profile/256term.sh
(предоставленный пакетомinitscripts
), что мой сделал по умолчанию, он должен автоматически установитьTERM
значениеxterm-256color
, включить цвет в bash (ls ...) и включить цвет в vim.Как уже указывалось в quanta, если у вас есть только vi, установите vim-extended.
Я не уверен, требуется ли это, если ваш клиентский терминал уже устанавливает цвет TERM. Я должен был сделать это, чтобы обойти Терминатор с жестко закодированным TERM = xterm. У терминала gnome в Ubuntu действительно есть TERM xterm-256color по умолчанию, поэтому цвет может работать без использования Send / AcceptEnv в ssh.
источник
Я думаю, что на самом деле у вас может быть vi, а не расширенная vim на консоли, к которой у вас SSH'd. Я должен был установить или псевдоним vim для vi, и он работал нормально для меня. «E519: опция не поддерживается: тип файла» в вашем комментарии, выдает эту информацию.
Я нашел полезную информацию об этом здесь .
источник