Mam dwa zdalne serwery:
Serwer 1: Linux 2.6.18-238.12.1.el5PAE i686 / VIM - Vi IMproved - wersja 7.0.237
Serwer 2: Linux 2.6.18-338.19.1.el5.lve0.8.36 x86_64 / VIM - Vi IMproved wersja 7.0. 237
Kiedy ssh na serwerze 2 i używam vima do edycji pliku php
lub .htaccess
pliku, ma piękne podświetlenie kolorów. Poniżej znajduje się /etc/vimrc
plik na tym serwerze.
Kiedy ssh do serwera 1, nie pojawia się żaden kolor. Próbowałem skopiować poniższy kod do mojego pliku ~ / .vimrc na serwerze 1, ale składnia kolorów nie działa. Inne funkcje (jak set nocompatible
) działają, ale nie kolory.
Dlaczego kolor nie działa na serwerze 1 i jak mogę go przetestować i naprawić? tput colors
na obu terminalach zwraca 8
. Próbowałem :syntax on
i :syntax enable
to też nie pomaga.
------------------------------------------------------------
Zawartość /etc/vimrc
pliku:
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
: wyjście wersji
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 <[email protected]>
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
i daje nam wynik.Odpowiedzi:
Podejrzewam, że masz
alias vim=vi
in~/.bashrc
. Spróbuj wykonać polecenie „prawdziwe”, a nie alias:Wygląda na to, że korzystasz z CentOS. Upewnij się, że zainstalowałeś
vim-enhanced
pakiet:źródło
Na podstawie swojej wersji możesz powiedzieć, że vim jest mały i nie jest skompilowany z
-syntax
opcją.export TERM=xterm-256color
Włóż także swój bashrc, aby uzyskać pełną korzyść ...źródło
Możesz także użyć
sshfs
do zamontowania zasobu, aby lokalny vim był używany do edycji tych plików.Vim może również edytować zdalne pliki. Piękno tego polega na tym, że możesz następnie edytować w zaciszu własnej, dostosowanej i znanej konfiguracji vim.
vi scp://[email protected]/path/to/file
źródło
Istnieje szczególny przypadek, w którym jeśli terminal klienta nie ustawia koloru TERM, a zamiast tego ustawia COLORTERM. Zrób to:
Na komputerze klienckim dodaj
SendEnv COLORTERM
do/etc/ssh/ssh_config
, a na serwerze dodajAcceptEnv COLORTERM
do/etc/ssh/sshd_config
.Załaduj ponownie sshd (
service sshd reload
) i połącz ponownie.Jeśli twoim serwerem jest CentOS / RHEL i ma
/etc/profile/256term.sh
(dostarczone przez pakietinitscripts
), co mój domyślnie zrobił, powinno to automatycznie ustawićTERM
naxterm-256color
, włącz kolor w bash (ls ...) i włącz kolor w vimie.Jak już zaznaczono w quanta, jeśli masz tylko vi, zainstaluj vim-extended.
Nie jestem pewien, czy jest to wymagane, jeśli terminal klienta już ustawia kolor TERM. Musiałem to zrobić, aby obejść Terminator z zakotwiczonym TERM = xterm. gnome-terminal na Ubuntu ma domyślny TERM xterm-256color, więc kolor może działać bez potrzeby Send / AcceptEnv w ssh.
źródło
Myślę, że faktycznie możesz mieć vi, a nie vim-ulepszone na konsoli, do której masz SSH. Musiałem zainstalować lub alias vim do vi i działało to normalnie dla mnie. „E519: Opcja nieobsługiwana: typ pliku” w komentarzu podaje tę informację.
Tutaj znalazłem pomocne informacje na ten temat .
źródło