هل هناك طريقة لتظليل تسليط الضوء على ملف أراه في أقل؟
في الحقيقة أنا أستخدم هذا الأمر لفتح ملف xml (وأحيانًا سلسلة منهم)
less htmleditors/htmleditors_config.xml
أو
less [multiple files]
أود البقاء في أقل (لمعرفة هذا البرنامج بشكل أفضل واستخدام معرفتي: n و: p للتنقل التالي/السابق)
لكنها تريد أيضًا نوعًا من تمييز بناء الجملة الأساسي - على الأقل إظهار التعليقات بشكل مختلف. هل تعرف أي طريقة للقيام بذلك؟
يمكنك استخدام تسليط الضوء على مصدر جنو ، كما هو مبين هنا (قد المسار تختلف ، انظر أدناه):
export LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s"
export LESS=' -R '
اعتبارًا من Debian Stretch و Fedora 25 ، تختلف أسماء الحزم ومسارات البرامج النصية
دبيان:
Sudo apt install libsource-highlight-common source-highlight
dpkg -L libsource-highlight-common | grep lesspipe
# /usr/share/source-highlight/src-hilite-lesspipe.sh
فيدورا:
Sudo dnf install source-highlight
rpm -ql source-highlight | grep lesspipe
# /usr/bin/source-highlight/src-hilite-lesspipe.sh
أفضل من كل من الإجابات السابقة: يمكنك استدعاء محرر النظام الافتراضي من الداخل أقل ، عن طريق الضغط v.
pygmentize somefile.ex | less -R
أو
function cless () {
pygmentize -f terminal "$1" | less -R
}
يأتي Pygmentize كجزء من / بناء جملة Pygments Python highliter .
أعتقد أنه يجب عليك استخدام محرر نصوص. أنا أحب vim نفسي. سوف يمنحك ذلك الكثير من الطاقة عند عرض الملفات ثم عندما تريد تحريرها ، ستعرف الأساسيات بالفعل.
فيما يلي بعض مزايا استخدام محرر نصوص (على وجه التحديد vim):
لفتح ملفك في وضع القراءة ، استخدم هذا:
vim -R <file name>
فيما يلي دليل التنقل الأساسي:
j - move down one line
k - move up one line
h - left one char
l -right one char
ctrl-f - forward one page
ctrl-b - back one page
/<something> - search for something
n - next of whatever you searched for
N - next (search backwards) of whatever you searched for
:q - quit
:q! - quit without saving
:w - save
هنا رابط لمزيد من المعلومات:
http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html
فقط لتلخيص ، إذا كنت ستستخدم unix vim أمر أساسي. لقد سمعت أن تعلم vim يشبه تعلم الكتابة. إنها الأداة الأكثر فائدة التالية التي يمكنك تعلمها للبرمجة.
(فقط لتجنب حروب المحررين ، يمكنك أيضًا البحث في emacs أو محرر آخر ، ومع ذلك فأنا شخصياً أفضِّل vim)
كما قال آخرون ، يمكنك استخدام قوة vim. لكن الأهم من ذلك ، يمكنك القيام بذلك دون تعلم كيفية استخدام vi/vim.
Vim يأتي مع برنامج نصي less.vim
يعمل بشكل جيد كبديل لأقل من ذلك ، مع تسليط الضوء على بناء الجملة بالألوان الكاملة. يستخدم less
keybindings (فقط اضغط "q" لإنهاء).
كان لديه بعض المشاكل ، لذلك قمت بتحسينه . في ما يلي لقطة شاشة من منشور مدونتي عليها (تم أرشفت 2013-04-09 ؛ رميات أصلية 503):
كنت أبحث أيضًا عن هذا ووجدت حلاً آخر باستخدام Vim: http://ubuntu-tutorials.com/2008/07/14/use-vim-as-a-syntax-highlighting- النداء/
المنشور قديم إلى حد ما ، لذا يتم الآن شحن أحدث إصدار من distros vim وسيتم قراءة .bashrc: alias vless = 'vim -u /usr/share/vim/vim72/macros/less.vim'
يسرني أن أعلن عن حزمة جديدة ، e2ansi ، والتي توفر بناء جملة يبرز دعم أجهزة الاستدعاء مثل more
و less
.
تستخدم الحزمة أم جميع برامج تحرير النصوص ، Emacs ، لإجراء تمييز بناء الجملة الفعلي. كمكافأة إضافية ، يتم أيضًا إجراء جميع التحويلات الأخرى التي تتم عادةً بواسطة Emacs - مثل الملفات غير المضغوطة.
التالي هو نتيجة عرض ملف باستخدام less
و e2ansi
:
توفر الحزمة أداة سطر أوامر e2ansi-cat
التي تبدأ تشغيل Emacs في وضع الدُفعات ، وتفتح الملفات ، وتُبرِز بناء الجملة عليها ، وتعرض النتيجة باستخدام تسلسل ANSI.
يمكنك دمج هذا في less
عن طريق تعيين المتغيرات التالية على سبيل المثال (قد يختلف موقع ملف init الخاص بك):
export "LESSOPEN=||-/usr/local/emacs --batch -Q -l ~/.emacs -l bin/e2ansi-cat %s"
export "LESS=-r"
alias "more=less -X -E"
في التكوين أعلاه ، يسترجع less
محتوى نافذة المحطة الطرفية الأصلي في حين أن more
يستخرج ببساطة محتوى جديد بعد المطالبة.
ملاحظة: إذا كنت تستخدم إصدارًا قديمًا من less
، فقد لا يدعم بناء الجملة ||
أو -
، وفي هذه الحالة قد تحتاج إلى استخدام LESSOPEN=|/usr/local/emacs ...
ببساطة.
less
في الأنابيبيشير الحرف "-" في LESSOPEN
إلى أنه يجب أيضًا استخدام عامل تصفية الإدخال عند نقل النص إلى less
. في هذه الحالة ، يمكن لـ Emacs الاعتماد فقط على النص نفسه (وليس اسم الملف). لحسن الحظ ، توفر Emacs نظامًا لهذا الغرض. بالإضافة إلى ذلك ، يقوم ملف الملف المتوفر e2ansi-magic.el
بإعداد أنواع ملفات إضافية. فمثلا:
e2ansi
، يتم الحفاظ على الألوان في السمة عند عرض ملف في less
. يمكنك اختيار سمة ألوان مناسبة من عدد من المصادر ، أو تصميم تصميم خاص بك.less
(ناقص القيود في تنسيق تسلسل ANSI ونافذة النهاية).less
سيستفيد من ميزات Emacs التي تقوم بالتحويل التلقائي ، على سبيل المثال الملفات غير المضغوطة. في الواقع ، يمكنك تعليم Emacs أداء أي نوع من التحويل مثل تحويل ملف ثنائي تلقائيًا إلى نموذج قابل للقراءة من قبل الإنسان باستخدام أداة خارجية./[email protected]:FILENAME
.e2ansi
على Melpa ويمكن تثبيته باستخدام نظام الحزمة Emacs القياسيe2ansi
مستضاف على GitHube2ansi
في Emacs Wikiless
.على MS Windows ، لا تدعم وحدة التحكم أصلاً تسلسل ANSI. لحسن الحظ ، تطبيق less
قادر على تقديمها. لست على علم بأي توزيع ثنائي معاصر لـ less
لـ MS Windows ومن الصعب استخدام ملفات الإنشاء المتوفرة. لحسن الحظ ، من السهل إنشاء less
باستخدام CMake ، راجع هذا النص لـ تفاصيل.
يوزع نظام OS X نسخة قديمة من less
. لحسن الحظ ، من السهل إنشاء نسخة حديثة مباشرة من المصدر.
إذا كان لديك GNU Source-highlight مثبتًا ، يمكنك استخدام الأمر التالي لتمييز بناء جملة ملف واحد:
$ src-hilite-lesspipe.sh yourfile.xml | less -R
باستخدام OS X 10.9 (مافريك) هذا سيفعل الخدعة:
Sudo nano /etc/launchd.conf
setenv LESSOPEN="| /usr/local/bin/src-hilite-lesspipe.sh %s" setenv LESS=' -R '
(أضف إلى /etc/launchd.conf)
اعادة التشغيل
يحتوي source-highlight
على نص .sh
موجود في /usr/share/source-highlight/*.sh
. لقد أنشأت رابطًا رمزيًا له باسم hcat
في /usr/bin
.
هذا يظهر الإخراج المميز في محطة (وحدة) - hcat
يتم تمييز القط.
كيفية:
[[email protected]]<bash><~> 43
21:23 Fri Apr 19 > Sudo apt-get install source-highlight
[[email protected]]<bash><~> 28
21:03 Fri Apr 19 > ll /usr/share/source-highlight/*.sh
-rwxr-xr-x 1 root root 432 May 1 2012 /usr/share/source-highlight/src-hilite-lesspipe.sh*
[[email protected]]<bash><~> 29
21:04 Fri Apr 19 > Sudo su
[email protected]:/home/me# cd /usr/bin/
[email protected]:/usr/bin# ln -s /usr/share/source-highlight/src-hilite-lesspipe.sh hcat
[[email protected]]<bash><~> 36
21:07 Fri Apr 19 > hcat test.xml
لقد وجدت highlight
والتي:
source-highlight
)pygmentize
فيما يلي نص أتصل به highlight-less-wrapper
والذي يتضمن إرشادات .bashrc
حول كيفية إعداد less
لاستخدامه تلقائيًا.
#!/bin/bash
# Have highlight read from STDIN if '-' is given as filename
# Setup - Add to .bashrc:
# LESSOPEN='|-highlight-less-wrapper "%s"'
# export LESS=-FMRXis
# Usage:
# $ less file
# OR
# $ pipeline | less
warn () { printf "%s: %s\n" "$(basename "$0")" "$*" 1>&2; }
die () { warn "[email protected]"; exit 1; }
# Argument checking
case $# in
0)
# Allow `exec $0` for less setup
echo "LESSOPEN='|-$(readlink -f "$0") "'"%s"'\'
exit 255 ;;
1)
# Only one argument is expected.
# less will invoke multiple times given multiple files.
file=$1
if [[ $file != - && ! -r $file ]]; then # less passes '-' for STDIN
die "Cannot open $file for reading"
fi ;;
*)
die "Expected only one argument" ;;
esac
# Run highlight
# highlight will read from STDIN when given a null filename
run_highlight () {
highlight --force -O truecolor --style aiseered "$1"
}
if [[ $file == - ]]; then # Run on stdin
run_highlight ""
else
run_highlight "$file"
fi
في نظام التشغيل mac ، يمكنك فقط كتابة view filename
، هل يفعل الشيء نفسه أقل.
كان لدي نفس السؤال ، وهبطت سمعت ، وقرأت جميع الإجابات ، وفيما يلي ما فعلته أخيرًا لتوضيح بناء الجملة في كل مرة أستخدم فيها less
أو most
:
Sudo apt install source-highlight
بعد ذلك ، قمت بإنشاء وإنشاء اسم مستعار لملفي less
و most
(أستخدم ZSH ، لكن يمكنك إضافة أسماء مستعارة لملف .bashrc
الخاص بك إذا كنت تستخدم bash):
vim ~/.zshrc
( بالنسبة لأولئك الذين قد تتعثر في vim: اضغط i للذهاب إلى وضع التحرير ، عند الانتهاء من الصحافة Esc ثم : ثم x وأخيرا Enter لحفظ التغييرات )
ولصق الأسطر التالية للتوزيعات المستندة إلى دبيان (مثل دبيان ، أوبونتو ، مينت ، إلخ):
alias most='AliasFuncLess() { unset -f AliasFuncLess; $(dpkg -L libsource-highlight-common | grep lesspipe) "$1" | less -R };AliasFuncLess'
alias most='AliasFuncMost() { unset -f AliasFuncMost; $(dpkg -L libsource-highlight-common | grep lesspipe) "$1" | most };AliasFuncMost'
أو لتوزيعات RPM (Redhat و Fedora و Centos):
alias most='AliasFuncLess() { unset -f AliasFuncLess; $(rpm -ql source-highlight | grep lesspipe) "$1" | less -R };AliasFuncLess'
alias most='AliasFuncMost() { unset -f AliasFuncMost; $(rpm -ql source-highlight | grep lesspipe) "$1" | most };AliasFuncMost'
تذكر لإغلاق المحطة وفتحه مرة أخرى للتأكد من إنشاء اسم مستعار.
يمكنك الآن الاستمتاع بالألوان:
most yourFile.xml
إذا كنت تريد بناء الجملة نفسه الذي تبرزه في Vim ، ولكن لسبب ما كنت تفضل استخدام less
كنظام النداء الخاص بك ، يمكنك استخدام هذا البرنامج النصي: https://github.com/rkitover/vimpager
الاستخدام الأساسي سيكون:
vimpager file.txt
أو
vimcat file.ext | less -R
يمكنك استخدام -c
لتمرير أوامر إضافية غير موجودة في .vimrc
(مثل تحديد نظام ألوان مختلف). الأمر الكامل الذي أستخدمه هو:
vimcat -c 'set cmdheight=20' -c 'hi! clear Normal' -o - "$FILENAME" | less -REXS
احذر: إذا طلب منك Vim الضغط على مفتاح Enter عند بدء تشغيله ، فلن ترى الموجه ، لكن لن يحدث شيء حتى تضغط على Enter! خدعة cmdheight
أعلاه يمكن أن تساعد في تخفيف ذلك.
بعد تثبيت جنو تسليط الضوء على المصدر (الحزمة dev-util/source-highlight
في sabayon/gentoo) ، قمت بتهيئة تلك envs في /etc/bash/bashrc.d/my-less-src-highlight
:
#default: export LESSOPEN="|lesspipe %s"
#don't like: export LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s"
#default: export LESS=" -R -M --shift 5"
export LESSCOLOR=always
export LESSCOLORIZER=/usr/bin/src-hilite-lesspipe.sh
لم أرغب في استبدال lesspipe
لأن هذا له ميزات أخرى. لم سلسلة لا تعمل.