Bagaimana cara mengaktifkan warna dalam Vim lebih dari SSH?

9

Saya memiliki dua server jarak jauh:

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

Ketika saya ssh ke Server 2 dan menggunakan vim untuk mengedit phpatau .htaccessfile itu memiliki highlight warna yang indah. Di bawah ini adalah /etc/vimrcfile di server itu.

Ketika saya ssh ke Server 1, tidak ada warna yang muncul. Saya mencoba menyalin kode di bawah ini ke file ~ / .vimrc saya di Server 1, tetapi sintaks warna tidak berfungsi. Fitur lain (seperti set nocompatible) berfungsi, tetapi tidak warna.

Mengapa warna tidak berfungsi di Server 1, dan bagaimana saya bisa menguji dan memperbaikinya? tput colorspada kedua terminal kembali 8. Saya sudah mencoba :syntax ondan :syntax enableitu juga tidak membantu.

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

Isi /etc/vimrcfile:

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

: keluaran versi

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
sumber
1
Buka file PHP Anda, ketik :set term, :set filetypedan beri kami hasilnya.
quanta
term = xterm, E519: Opsi tidak didukung: filetype
cwd

Jawaban:

12

Saya curiga ada yang alias vim=vimasuk ~/.bashrc. Coba ini untuk menjalankan perintah 'nyata', bukan alias:

\vim /path/to/php/file

Sepertinya Anda menjalankan CentOS. Pastikan Anda menginstal vim-enhancedpaket:

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
kuanta
sumber
saya akan menginstal versi yang disempurnakan dan melihat apakah itu membuat perbedaan. terima kasih telah melihat yang satu ini.
cwd
4

Anda dapat mengetahui dari versi keluaran vim Anda bahwa vim-tiny dan tidak dikompilasi dengan -syntaxopsi.

Juga menempatkan export TERM=xterm-256colordi bashrc untuk mendapatkan manfaat penuh ...

phildobbin
sumber
4

Anda juga dapat menggunakan sshfsuntuk memasang sumber daya sehingga vim lokal Anda digunakan untuk mengedit file-file ini.

Vim juga dapat mengedit file jarak jauh. Keindahan dari ini adalah Anda kemudian dapat mengeditnya dalam kenyamanan konfigurasi vim Anda yang disesuaikan dan familiar.

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

vgoff
sumber
0

Ada kasus khusus di mana jika terminal klien Anda tidak menetapkan TERM warna tetapi sebaliknya menetapkan COLORTERM. Melakukan hal ini:

Di mesin klien Anda, tambahkan SendEnv COLORTERMke /etc/ssh/ssh_config, dan di server, tambahkan AcceptEnv COLORTERMke /etc/ssh/sshd_config.

Muat ulang sshd ( service sshd reload) dan hubungkan kembali.

Jika server Anda adalah CentOS / RHEL dan telah /etc/profile/256term.sh(disediakan oleh paket initscripts), yang saya lakukan secara default, ini harus secara otomatis diatur TERMke xterm-256color, aktifkan warna dalam bash (ls ...) dan aktifkan warna dalam vim.

Seperti yang telah ditunjukkan oleh quanta jika Anda hanya memiliki vi, instal vim-enhanced.

Saya tidak yakin apakah ini diperlukan jika terminal klien Anda sudah menetapkan TERM warna. Saya harus melakukan ini untuk mengatasi Terminator yang memiliki TERM hardcoded = xterm. gnome-terminal di ubuntu memang memiliki TERM standar xterm-256color, sehingga warna dapat bekerja tanpa perlu Kirim / TerimaEv di ssh.

jjakob
sumber
0

Saya pikir Anda sebenarnya mungkin memiliki vi dan tidak ditingkatkan vim pada konsol yang Anda inginkan SSH. Saya harus menginstal atau alias vim ke vi dan itu berfungsi normal untuk saya. "E519: Opsi tidak didukung: filetype" di komentar Anda, memberikan informasi ini.

Saya menemukan informasi bermanfaat tentang ini di sini .

jimh
sumber