Làm cách nào để bật màu trong Vim qua SSH?


9

Tôi có hai máy chủ từ xa:

Máy chủ 1: Linux 2.6.18-238.12.1.el5PAE i686 / VIM - Vi IMproved - phiên bản 7.0.237
Máy chủ 2: Linux 2.6.18-338.19.1.el5.lve0.8.36 x86_64 / VIM - Vi phiên bản 7.0. 237

Khi tôi ssh vào Máy chủ 2 và sử dụng vim để chỉnh sửa a phphoặc .htaccesstệp, nó có màu nổi bật đẹp. Dưới đây là /etc/vimrctập tin trên máy chủ đó.

Khi tôi ssh vào Máy chủ 1, không có màu nào hiển thị. Tôi đã thử sao chép mã dưới đây vào tệp ~ / .vimrc của mình trên Máy chủ 1, nhưng cú pháp màu không hoạt động. Các tính năng khác (như set nocompatible) đang hoạt động, nhưng không phải là màu sắc.

Tại sao màu không hoạt động trên Máy chủ 1 và làm cách nào tôi có thể kiểm tra và khắc phục nó? tput colorstrên cả hai thiết bị đầu cuối trở lại 8. Tôi đã thử :syntax on:syntax enableđiều đó cũng không giúp được gì.

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

Nội dung của /etc/vimrctập tin:

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

: đầu ra phiên bản

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 <bugzilla@redhat.com>
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

1
Mở file PHP của bạn, loại :set term, :set filetypevà cho chúng ta kết quả.
lượng tử

term = xterm, E519: Tùy chọn không được hỗ trợ: filetype
cwd

Câu trả lời:


12

Tôi nghi ngờ rằng bạn có một alias vim=vitrong ~/.bashrc. Hãy thử điều này để chạy lệnh 'thực', không phải bí danh:

\vim /path/to/php/file

Có vẻ như bạn đang chạy CentOS. Đảm bảo rằng bạn đã cài đặt vim-enhancedgói:

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

tôi sẽ cài đặt phiên bản nâng cao và xem nếu điều đó làm cho một sự khác biệt. cảm ơn vì đã xem xét cái này
cwd

4

Bạn có thể nói với phiên bản đầu ra của vim rằng đó là vim-tiny và nó 'không được biên dịch với -syntaxtùy chọn.

Đồng thời đặt export TERM=xterm-256colorvào bashrc của bạn để nhận được toàn bộ lợi ích ...


4

Bạn cũng có thể sử dụng sshfsđể gắn kết tài nguyên để vim cục bộ của bạn được sử dụng để chỉnh sửa các tệp này.

Vim cũng có thể chỉnh sửa các tập tin từ xa. Cái hay của việc này là sau đó bạn có thể chỉnh sửa một cách thoải mái với cấu hình vim tùy chỉnh và quen thuộc của riêng bạn.

vi scp://username@example.com/path/to/file


0

Có một trường hợp cụ thể trong đó nếu thiết bị đầu cuối của khách hàng của bạn không đặt TATE màu mà thay vào đó đặt MÀU SẮC. Làm cái này:

Trên máy khách của bạn, thêm SendEnv COLORTERMvào /etc/ssh/ssh_configvà trên máy chủ, thêm AcceptEnv COLORTERMvào /etc/ssh/sshd_config.

Tải lại sshd ( service sshd reload) và kết nối lại.

Nếu máy chủ của bạn là CentOS / RHEL và có /etc/profile/256term.sh(được cung cấp bởi gói initscripts), do tôi đã làm theo mặc định, điều này sẽ tự động được đặt TERMthành xterm-256color, bật màu trong bash (ls ...) và bật màu trong vim.

Như đã được chỉ ra bởi quanta nếu bạn chỉ có vi, hãy cài đặt vim-boost.

Tôi không chắc chắn nếu điều này là bắt buộc nếu thiết bị đầu cuối của khách hàng của bạn đã đặt TATE màu. Tôi đã phải làm điều này để làm việc xung quanh Terminator có mã TERM = xterm được mã hóa cứng. gnome-terminal trên ubfox không có TERM xterm-256color mặc định, vì vậy màu sắc có thể hoạt động mà không cần Send / AcceptEnv trong ssh.


0

Tôi nghĩ rằng bạn thực sự có thể có vi và không được tăng cường vim trên bảng điều khiển mà bạn có SSH. Tôi đã phải cài đặt hoặc bí danh vim cho vi và nó hoạt động bình thường đối với tôi. "E519: Tùy chọn không được hỗ trợ: filetype" trong bình luận của bạn, cung cấp thông tin này đi.

Tôi tìm thấy thông tin hữu ích về điều này ở đây .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.