Comment activer la couleur dans Vim sur SSH?

9

J'ai deux serveurs distants:

Serveur 1: Linux 2.6.18-238.12.1.el5PAE i686 / VIM - Vi IMproved - version 7.0.237
Serveur 2: Linux 2.6.18-338.19.1.el5.lve0.8.36 x86_64 / VIM - Vi IMproved version 7.0. 237

Quand je ssh dans le serveur 2 et utilise vim pour éditer un fichier phpou .htaccessil a une belle mise en évidence des couleurs. Voici le /etc/vimrcfichier sur ce serveur.

Quand je ssh dans le serveur 1, aucune couleur n'apparaît. J'ai essayé de copier le code ci-dessous dans mon fichier ~ / .vimrc sur le serveur 1, mais la syntaxe des couleurs ne fonctionne pas. Les autres fonctionnalités (comme set nocompatible) fonctionnent, mais pas les couleurs.

Pourquoi la couleur ne fonctionne-t-elle pas sur le serveur 1 et comment puis-je la tester et la corriger? tput colorssur les deux terminaux revient 8. J'ai essayé :syntax onet :syntax enableça n'aide pas non plus.

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

Contenu du /etc/vimrcdossier:

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

: sortie de la version

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
la source
1
Ouvrez votre fichier PHP, le type :set term, :set filetypeet nous donner le résultat.
quanta
term = xterm, E519: Option non prise en charge: filetype
cwd

Réponses:

12

Je soupçonne que vous avez un alias vim=viin ~/.bashrc. Essayez ceci pour exécuter la commande «réelle», pas l'alias:

\vim /path/to/php/file

On dirait que vous utilisez CentOS. Assurez-vous que vous avez installé le vim-enhancedpackage:

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
quanta
la source
je vais installer la version améliorée et voir si cela fait une différence. merci d'avoir regardé celui-ci.
cwd
4

Vous pouvez dire par la sortie de votre version de vim qu'il est minuscule et qu'il n'est pas compilé avec l' -syntaxoption.

Mettez également export TERM=xterm-256colorvotre bashrc pour en profiter pleinement ...

phildobbin
la source
4

Vous pouvez également utiliser sshfspour monter la ressource afin que votre vim local soit utilisé pour modifier ces fichiers.

Vim peut également modifier des fichiers distants. La beauté de ceci est que vous pouvez ensuite éditer dans le confort de votre propre configuration vim personnalisée et familière.

vi scp://[email protected]/path/to/file

vgoff
la source
0

Il existe un cas spécifique où si votre terminal client ne définit pas de couleur TERM mais définit plutôt COLORTERM. Faites ceci:

Sur votre ordinateur client, ajoutez SendEnv COLORTERMdans /etc/ssh/ssh_configet sur le serveur, ajoutez AcceptEnv COLORTERMdans /etc/ssh/sshd_config.

Rechargez sshd ( service sshd reload) et reconnectez-vous.

Si votre serveur est CentOS / RHEL et possède /etc/profile/256term.sh(fourni par le package initscripts), ce que le mien a fait par défaut, cela devrait automatiquement être défini TERMsur xterm-256color, activer la couleur dans bash (ls ...) et activer la couleur dans vim.

Comme déjà souligné par quanta si vous n'avez que vi, installez vim-Enhanced.

Je ne sais pas si cela est nécessaire si votre terminal client définit déjà un TERM de couleur. J'ai dû faire cela pour contourner Terminator ayant un TERM = xterm codé en dur. gnome-terminal sur ubuntu a un TERM xterm-256color par défaut, donc la couleur peut fonctionner sans avoir besoin de Send / AcceptEnv dans ssh.

jjakob
la source
0

Je pense que vous pouvez réellement avoir vi et non amélioré par vim sur la console que vous avez SSH. J'ai dû installer ou alias vim à vi et cela a fonctionné normalement pour moi. "E519: Option non prise en charge: type de fichier" dans votre commentaire, donne ces informations.

J'ai trouvé des informations utiles à ce sujet ici .

Jimh
la source