kurang sorotan perintah dan sintaksis

44

Saya perlu menggunakan less commanddengan sintaks dari perintah vim untuk python, C, bashdan bahasa lainnya.

Bagaimana cara menerapkan warna highlight sintaksis menurut vimwarna less command?

Teluk Persia
sumber

Jawaban:

36

Penyorotan sintaks less, bekerja dengan baik pada kebanyakan sistem * nix.

apt install source-highlight
export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s"
export LESS=' -R '

Sebaliknya, menggunakan distro berbasis Fedora / RedHat /usr/bin/src-hilite-lesspipe.sh.

Bahkan di Cygwin Anda dapat melakukannya dengan sedikit penyesuaian jalur skrip shell dan menginstal dengan apt-cygalih - alih apt.

Namun, menggunakan ini secara drastis memperlambat penelusuran file-file besar. Saya menyarankan untuk menggunakan aliassedemikian rupa untuk hanya menerapkan LESSOPENekspor di atas bila diperlukan, seperti ini:

alias lessh='LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s" less -M '

di mana -Mbendera nyaman untuk juga menampilkan nama file dan nomor baris.

Ingat juga untuk menyalin skrip ke path bin Anda:

cp /usr/share/source-highlight/src-hilite-lesspipe.sh /usr/bin/src-hilite-lesspipe.sh

PEMBARUAN: 2019-07-24

Tampaknya, pada pemasangan Cygwin yang lebih baru, Anda memiliki file berikut di jalur Anda:

source-highlight.exe
source-highlight-esc.sh
source-highlight-settings.exe

Jadi sekarang Anda juga perlu menjalankan source-highlight-settings.exeyang akan menambah file konfigurasi:
$HOME/.source-highlight/source-highlight.conf.

not2qubit
sumber
Alias ​​'lessh' tidak berfungsi untuk saya. Menjalankan bash di osx. Mendesah.
Scott Biggs
Itu adalah masalah yang sama sekali berbeda, kemungkinan besar karena OSX menggunakan opsi shell dan lingkungan yang berbeda, yang dapat mempengaruhi interpretasi kutipan tunggal dan ganda, secara berbeda. Anda dapat memeriksa dan mengatur ini dengan shopt -pdan set.
not2qubit
1
Ini bekerja untuk saya di OSX: pertama saya instal dengan brew install source-highlightalias lessh='LESSOPEN="| src-hilite-lesspipe.sh %s" less -R '
:,
39

less tidak mendukung penyorotan sintaksis.

vim, seperti semua viklon memiliki mode hanya baca viewyang disebut yang dapat Anda gunakan untuk hanya melihat file. ini mendukung semua fitur vim termasuk penyorotan sintaksis.

misalnya

view filename.py

perbedaan utama antara viewdan vitampilan itu tidak "mengunci" file yang Anda lihat dengan membuat file .swp.

cas
sumber
jika view commandcara Anda dari radare package, itu tidak hanya dibaca
PersianGulf
4
Hmm, viewperintah saya sepertinya tidak mendukung penyorotan sintaksis. Saya sudah mencoba :syntax enabledan :syntax on, tetapi saya selalu mendapatkannya syntax: Not an editor command. vimDukungan saya menyoroti, meskipun.
Felix
@ Feliks - apakah Anda memiliki visuka nviatau elvisdiinstal? periksa /usr/bin/view- pada sistem debian saya, itu adalah symlink /etc/alternatives/viewyang, pada gilirannya, adalah symlink ke /usr/bin/vim.basic.
cas
1
Hmm, dalam kasus saya ini adalah symlink ke /usr/bin/ex, yang, anehnya, dimiliki oleh vipaket.
Felix
2
Saya dapat mengkonfirmasikan apa yang dikatakan @Felix, pada arch linux viewadalah sebuah symlink ke /usr/bin/exdari core/vipaket.
x-yuri
12

lesstidak dapat diajarkan untuk menyorot elemen sintaks, tetapi Vim dapat digunakan sebagai pager, yaitu pengganti untuk less. Ada plugin yang lebih maju, tetapi skrip dasar sebenarnya dikirimkan bersama Vim ( $VIMRUNTIME/macros/less.sh). Untuk informasi lengkap, lihat Menggunakan vim sebagai pager highlight-syntax pada Vim Tips Wiki.

Ingo Karkat
sumber
2
Saya terkejut orang-orang bahkan tidak repot-repot ke Google sebelum memposting jawaban yang salah ...
not2qubit
1
@ user1147688: Jika Anda hati-hati membaca jawaban Felix, sorotan sumber GNU adalah program eksternal, dan integrasi dengan lebih sedikit sangat longgar. Bukan itu lessyang menyoroti; tetapi Vim memang memiliki kemampuan ini bawaan.
Ingo Karkat
Untuk pertanyaan "Bagaimana cara menerapkan warna penyorotan sintaksis sesuai dengan warna vim untuk perintah yang lebih sedikit?", Jawaban "Dengan menggunakan sumber-sorot" sepertinya jawaban yang lebih benar bahwa "Dengan menggunakan vim".
Zano
1
+1 tetapi saya yakin apa yang ingin dikatakan oleh komentar ini - tidak dapat mengetahui apakah komentar itu positif atau negatif ("... google sebelum mengirim jawaban yang salah" ?, "menginstal xyz lebih benar daripada hanya menggunakan vim "?). Jawaban ini jelas merupakan "jawaban yang paling benar". Pada dasarnya OP tidak tahu fitur vim ini ada, dan jawaban ini membuat OP tahu bahwa itu ada. Ftam pisau cukur Occam. Jawabannya hanya dapat ditingkatkan dengan menunjukkan contoh, misalnya,$ diff file1.c file2.c | /usr/share/vim/vim74/macros/less.sh
michael
12

Saya cenderung tidak setuju dengan Ingo, less bisa diajarkan untuk menyoroti sintaksis. Lihat jawaban ini di SuperUser. Pada dasarnya, Anda harus menginstal source-highlight GNU (tersedia di semua repo paket distro utama), dan kemudian menambahkan yang berikut ke .bashrc( .bash_profileatau apa pun yang Anda miliki):

export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=" -R "

Namun, perhatikan bahwa source-highlighttidak sekuat vimstabilo. Gunakan apa pun yang paling cocok untuk Anda.

Felix
sumber