Ubah warna font untuk komentar di vim


96

Saya ingin mengubah warna font default untuk komentar yang berwarna biru tua menjadi warna kuning. Sulit untuk membaca dengan latar belakang hitam. Bisakah Anda memberi tahu saya cara mengubah hanya satu warna ini? Saya puas dengan warna lainnya.

Saya menggunakan xfce4-terminal (bukan gvim dengan GUI).

Sejauh ini saya sudah melakukan setting di ~/.profilefile sesuai link ini sebagai berikut

if [ -e /usr/share/terminfo/x/xterm-256color ]; then
        export TERM='xterm-256color'
else
        export TERM='xterm-color'
fi

dan

set t_Co=256

di ~/.vimrc

Terima kasih


7
Hanya pertanyaan bodoh, apakah Anda mencoba berbagai skema warna bawaan? Coba misalnya :colorscheme desert. Penyelesaian tab biasanya berfungsi.
Benoit

Saya mencobanya. Tapi saya ingin mencapai lebih banyak penyesuaian. Jika tidak ada yang tahu jawaban ini, saya akan menerima jawaban Anda sebagai solusi terbaik, karena Anda menjawab sebelum saya membuat pertanyaan saya lebih spesifik sesuai dengan apa yang ingin saya capai.
xralf

Tidak bisakah Anda menetapkan ulang palet warna terminal? Apakah terminal tidak memiliki pengaturan?
Benoit

@Benoit Lihat revisi pertanyaan berikutnya.
xralf

Jawaban:


58
:hi Comment guifg=#ABCDEF

Pilih warna Anda! Jika menggunakan terminal warna, ganti guifg=#ABCDEFdengan ctermfg=Ndengan N menjadi nomor warna.

Ketik juga :help :hiuntuk informasi lebih lanjut.


2
Terima kasih. ctermfg bekerja dengan warna seperti hijau atau kuning. Tetapi jika saya akan memberikan #ABCDEF atau ABCDEF itu menulis kesalahan E421: color name or number not recognized. Itu tidak mengenali huruf dalam kode heksadesimal, itu hanya mengenali angka.
xralf

ya, guifgparameternya adalah untuk saat Anda menggunakan vim gui (gvim).
Benoit

1
Itu berarti saya dibatasi hanya 16 warna? Saya menambahkan pengaturan ke .vimrctetapi ini tidak berhasilset highlight Comment ctermfg=yellow
xralf

1
Ada lebih dari 16. Lihat di sini . Saya ingin mencapai bahwa komentar saya berwarna kuning tetapi hanya sedikit kuning dan selamanya. Apakah mungkin untuk mengatur ini .vimrc?
xralf

3
Ini sudah terlambat dua tahun, tetapi jika ada orang lain yang menginginkan solusi untuk masalah @Roboprog. Milik saya mengabaikannya ketika saya memasukkan baris hi comment ctermfg=<colour>ke dalam .vimrcfile, tetapi saya berhasil itu karena baris itu datang sebelum baris syntax on, begitu saya menukar pesanan, itu berfungsi dengan baik ..
guskenny83

129

Sebagian besar skema warna yang berperilaku baik akan menghormati backgroundpengaturan:

set background=dark

akan mengubah warna komentar dari biru tua menjadi biru muda, saat menggunakan skema warna default.


4
Ini adalah solusi yang luar biasa. Mungkin bukan jawaban terbaik untuk pertanyaan di atas, tetapi memecahkan masalah "sangat sulit dibaca" dengan cara yang sempurna.
GabrieleV

5
Ini harus menjadi default di Ubuntu. Komentar pada dasarnya tidak mungkin dibaca ketika biru tua pada latar belakang ungu. Terima kasih. Saya menyertakan ini dalam ~/.vimrcfile saya . Jika seseorang ingin menguji seperti apa ini tanpa melakukan itu, cukup ketikkan perintah di atas ke dalam vim setelah menekan :tombol.
Drew Noakes

1
Itu adalah hal pertama yang dicari oleh pencarian google. Namun, saya suka warna default (selain komentar) yang bekerja dengan baik di jendela terminal gelap dan saat ditempelkan ke email / dokumen dengan latar belakang putih. Saya suka terminal gelap, apa yang bisa saya katakan? (nostalgia / adat)
Roboprog

2
menambahkan baris 'set background = dark' ke ~ / .vimrc berhasil. mataku sudah terbiasa dengan skema warna lain, otakku menganggap ini terlihat jelek ... tapi setidaknya aku bisa melihat komentarku sekarang. Terima kasih.
sonjz

5
@ 3kstc: Anda dapat menambahkannya ke ~/.vimrcapa adanya. Anda juga dapat melihat apa yang terjadi di sesi saat ini hanya dengan mengetiknya dalam mode perintah. (Dalam mode normal, ketik :untuk masuk ke mode perintah.)
nperson325681

54
hi Comment ctermfg=LightBlue

Tambahkan ini ke .vimrcfile Anda yang ada di direktori Anda ~atau /etc/vim. Ini akan membuatnya permanen. Saya belum menguji ini dengan gvim.

Saya juga memiliki set background=lightsebelum saya mengatur warna komentar. Saya suka semua warna yang dibuatnya kecuali untuk komentar.


1
Dari mana LightBlueasalnya
nn0p

ini berfungsi untuk saya hanya ketika saya meletakkannya di akhir .vimrc
user3342981

8

Jika tujuannya adalah membuatnya lebih mudah dibaca di latar belakang dard konsol texto, perintah di bawah ini telah membuktikan saya sebagai opsi yang bagus dan lebih mudah untuk diingat:

:colorscheme evening

Namun harap diperhatikan, itu akan mengubah warna elemen lain.


6

Setelah sedikit mencari, seseorang dapat menemukan referensi yang layak untuk vim, terutama mengenai masalah ini, di http://vim.wikia.com/wiki/256_colors_in_vim . Tempat yang layak untuk memulai adalah melalui: be: verbose hi ketika sebenarnya di dalam vim, dan mengedit file. Kemudian periksa bagaimana semua variabel memiliki metadata yang terkait dengannya. Data yang dikembalikan dari sana, membuatnya sangat mudah untuk menambahkan jenis pengubah yang diinginkan ke .vimrc. Sebagai contoh, ini adalah pembaruan yang baru-baru ini saya tambahkan untuk menghilangkan biru tua, dan tidak harus tersiksa oleh biru muda, sebagai konsekuensinya:

    set number background=dark
    syntax on
    highlight Comment    ctermfg=119
    highlight Identifier ctermfg=99AA00


1

Ada berbagai skema warna di vim. defaultskema warna menampilkan komentar dalam warna biru yang membuat sulit untuk dibaca dengan latar belakang terminal hitam. Saya lebih suka menggunakan desertskema warna yang ditampilkan dalam warna yang dapat dibaca.

Untuk mengaktifkan desertskema warna vim, gunakan perintah :color desert. Jika ingin kembali defaultgunakan perintah :color default.

Anda bahkan dapat memperbarui ~/.vimrcdengan skema warna pilihan Anda.

echo 'color desert' >> ~/.vimrc

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.