Wie aktiviere ich Farbe in Vim über SSH?

9

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 phpoder einer .htaccessDatei verwende, hat es eine schöne Farbhervorhebung. Unten ist die /etc/vimrcDatei 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 colorsan beiden Terminals kehrt zurück 8. Ich habe es versucht :syntax onund :syntax enableaber das hilft auch nicht.

------------------------------------------------------------

Inhalt der /etc/vimrcDatei:

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
cwd
quelle
1
Öffnen Sie Ihre PHP - Datei, geben Sie :set term, :set filetypeund geben Sie uns das Ergebnis.
Quanten
term = xterm, E519: Option nicht unterstützt: Dateityp
cwd

Antworten:

12

Ich vermute, dass Sie eine alias vim=viin haben ~/.bashrc. Versuchen Sie dies, um den Befehl 'real' auszuführen, nicht den Alias:

\vim /path/to/php/file

Sieht so aus, als würden Sie CentOS ausführen. Stellen Sie sicher, dass Sie das vim-enhancedPaket installiert haben :

rpm -qa | grep vim
vim-minimal-7.0.109-4.el5_2.4z
vim-enhanced-7.0.109-7.el5
vim-common-7.0.109-7.el5
Quanten
quelle
Ich werde die erweiterte Version installieren und sehen, ob das einen Unterschied macht. Danke, dass du dir das angeschaut hast.
CWD
4

Sie können an Ihrer Versionsausgabe von vim erkennen, dass es vim-tiny ist und nicht mit der -syntaxOption kompiliert wurde .

Auch setzen export TERM=xterm-256colorin Ihrem bashrc den vollen Nutzen zu erhalten ...

Phildobbin
quelle
4

Sie können sshfsdie 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

vgoff
quelle
0

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 COLORTERMIn /etc/ssh/ssh_configund auf dem Server Add- AcceptEnv COLORTERMIn 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 bereitgestellt initscripts) hat, was meiner standardmäßig getan hat, sollte dies automatisch TERMauf " xterm-256colorFarbe 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.

jjakob
quelle
0

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 .

Jimh
quelle