Ich habe zwei Remote-Server:
Server 1: Linux 2.6.18-238.12.1.el5PAE i686 / VIM - Vi IMproved - Version 7.0.237
Server 2: Linux 2.6.18-338.19.1.el5.lve0.8.36 x86_64 / VIM - Vi IMproved Version 7.0. 237
Wenn ich in Server 2 ssh und vim zum Bearbeiten einer php
oder einer .htaccess
Datei verwende, hat es eine schöne Farbhervorhebung. Unten ist die /etc/vimrc
Datei auf diesem Server.
Wenn ich in Server 1 ssh, wird keine Farbe angezeigt. Ich habe versucht, den folgenden Code in meine ~ / .vimrc-Datei auf Server 1 zu kopieren, aber die Farbsyntax funktioniert nicht. Die anderen Funktionen (wie set nocompatible
) funktionieren, aber nicht die Farben.
Warum funktioniert die Farbe auf Server 1 nicht und wie kann ich sie testen und beheben? tput colors
an beiden Terminals kehrt zurück 8
. Ich habe es versucht :syntax on
und :syntax enable
aber das hilft auch nicht.
------------------------------------------------------------
Inhalt der /etc/vimrc
Datei:
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
: Versionsausgabe
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
und geben Sie uns das Ergebnis.Antworten:
Ich vermute, dass Sie eine
alias vim=vi
in haben~/.bashrc
. Versuchen Sie dies, um den Befehl 'real' auszuführen, nicht den Alias:Sieht so aus, als würden Sie CentOS ausführen. Stellen Sie sicher, dass Sie das
vim-enhanced
Paket installiert haben :quelle
Sie können an Ihrer Versionsausgabe von vim erkennen, dass es vim-tiny ist und nicht mit der
-syntax
Option kompiliert wurde .Auch setzen
export TERM=xterm-256color
in Ihrem bashrc den vollen Nutzen zu erhalten ...quelle
Sie können
sshfs
die Ressource auch so bereitstellen, dass Ihr lokales vim zum Bearbeiten dieser Dateien verwendet wird.Vim kann auch entfernte Dateien bearbeiten. Das Schöne daran ist, dass Sie dann bequem in Ihrer eigenen angepassten und vertrauten vim-Konfiguration bearbeiten können.
vi scp://[email protected]/path/to/file
quelle
Es gibt einen speziellen Fall, in dem Ihr Client-Terminal keinen Farbterm festlegt, sondern COLORTERM. Mach das:
Fügen Sie auf Ihrem Client-Computer Add-
SendEnv COLORTERM
In/etc/ssh/ssh_config
und auf dem Server Add-AcceptEnv COLORTERM
In hinzu/etc/ssh/sshd_config
.Laden Sie sshd (
service sshd reload
) neu und stellen Sie die Verbindung wieder her.Wenn Ihr Server CentOS / RHEL ist und
/etc/profile/256term.sh
(vom Paket bereitgestelltinitscripts
) hat, was meiner standardmäßig getan hat, sollte dies automatischTERM
auf "xterm-256color
Farbe in Bash" (ls ...) und "Farbe in Vim" aktiviert werden.Wie bereits von quanta ausgeführt , installieren Sie vim-erweitert, wenn Sie nur vi haben.
Ich bin nicht sicher, ob dies erforderlich ist, wenn Ihr Client-Terminal bereits einen Farbtermin festlegt. Ich musste dies tun, um Terminator mit einem fest codierten TERM = xterm zu umgehen. gnome-terminal auf ubuntu hat einen Standard-TERM xterm-256color, sodass Farbe möglicherweise funktioniert, ohne dass Send / AcceptEnv in ssh erforderlich ist.
quelle
Ich denke, Sie haben möglicherweise tatsächlich vi und nicht vim-erweitert auf der Konsole, die Sie mit SSH haben. Ich musste vim auf vi installieren oder alias und es funktionierte normal für mich. Die "E519: Option nicht unterstützt: Dateityp" in Ihrem Kommentar gibt diese Informationen weiter.
Ich habe hier hilfreiche Informationen dazu gefunden .
quelle