سؤال كيفية بناء الجملة تسليط الضوء عبر أقل


هل هناك طريقة لبناء الجملة تسليط الضوء على ملف أراه في أقل؟

في الواقع أنا أستخدم هذا الأمر لفتح ملف xml (وأحيانًا سلسلة منهم)

less htmleditors/htmleditors_config.xml

أو

less [multiple files]

أود البقاء في Less (لمعرفة هذا البرنامج بشكل أفضل واستخدام معرفتي بـ: n و: p للملاحة التالية / السابقة)

ولكنها تريد أيضًا نوعًا ما من تسليط الضوء على البنية الأساسية - على الأقل إظهار التعليقات بشكل مختلف. هل تعرف أي طريقة للقيام بذلك؟


123
2017-11-17 10:20


الأصل




الأجوبة:


يمكنك استخدام غنو مصدر الضوءكما هو موضح هنا:

 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

113
2017-11-17 10:35



أسترد رسالة الخطأ التالية عند تشغيل less ~/.zshrc. خطأ: src-hilite-lesspipe.sh: line 9: source-highlight: command not found. أركض هذا على ماكوسكس. - JJD
JJD هل قمت بتثبيت مصدر الضوء؟ - Max Nanasy
OSX: brew install source-highlight. export LESSOPEN="| /usr/local/bin/src-hilite-lesspipe.sh %s". لاحظ تغيير المسار. - Gregg Lind
على دبيان: sudo apt-get install source-highlight، export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s"، export LESS=' -R ' - Morgan Courbet
تحذير صغير: لا يدعم تمييز المصدر حاليًا عملية تخفيض السعر. - dhulihan


أفضل من كلا الإجابتين السابقتين: يمكنك استدعاء برنامج تحرير النظام الافتراضي من خلال أقل ، بالضغط الخامس.


85
2017-08-24 17:14



رائع! هذا مفيد بشكل مثير للدهشة! - dancek
اللعنات التي فتحت نانو على صندوق أوبونتو الخاص بي! - jamesc
ثم قم بتعيين $ EDITOR أو $ VISUAL إلى vim (أو emacs أو gedit أو joe أو ed أو mined أو…). - Daniel H
jamesc لمعلوماتك ، يمكنك تمكين تسليط الضوء على بناء الجملة في نانو ، هنا انا اعرض. - Captain Man
CaptainMan كلا كلا كلا! أغير الافتراضي إلى vim مثل دانيال H قال! :د - jamesc


pygmentize somefile.ex | less -R

أو

function cless () {
    pygmentize -f terminal "$1" | less -R
}

Pygmentize يأتي كجزء من Pygments Python بناء الجملة highliter.


31
2017-08-24 18:25



pygmentize يعمل أيضا مع LESSOPEN الاشياء المذكورة في إجابات أخرى هنا. - Nathan
للحصول على pygmentize، تحتاج بايثون وبعد ذلك يمكنك تثبيت pygmentize مع pip install pygments. - wkschwartz
للحصول على less ليستخدم pygmentize لتوضيح استخدام syntax: which pygmentize 2> /dev/null >&2 && export LESSOPEN="| pygmentize -g -f terminal256 %s". -g لجعله يعمل مع الأنابيب (less <(diff -u file1 files)). انها متاحة في community/pygmentize حزمة ل arch linux، و في python-pygments إلى عن على debian. - x-yuri
أنا أحب إخراج pygmentize، لكنها وجدت أنها بطيئة للغاية. خطرت لي هذا الجواب وهو أسرع ولا يزال 256 لونًا جميلًا. - Tom Hale


أعتقد أنه يجب عليك استخدام محرر نصوص. أنا أحب فيم نفسي. سيعطيك هذا الكثير من الطاقة عند عرض الملفات ومن ثم عندما تريد تحريرها ستعرف بالفعل الأساسيات.

فيما يلي بعض مزايا استخدام محرر النصوص (بالتحديد vim):

  • تسليط الضوء على تركيب
  • أوامر الحركة القوية
  • تجد
  • القفز إلى موقع محدد في ملف (يسمى علامة)
  • طي (مفيد عندما تريد فقط أن ترى ستوبس الدالة)

لفتح ملفك في وضع readonly استخدم هذا:

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

فقط لتلخيص ، إذا كنت ستستخدم يونكس فيم هو أساسي جدا. لقد سمعت أن تعلم vim يشبه تعلم الكتابة. إنها الأداة التالية الأكثر فائدة التي يمكنك تعلمها للبرمجة.

(فقط لتجنب الحروب محرر يمكنك أيضا النظر في emacs أو محرر آخر ، ولكن أنا شخصيا تفضل فيم)


15
2018-03-01 22:18



أنا ثاني هذا. تطلق Vim بسرعة أقل ، والعديد من اختصارات لوحة المفاتيح (على سبيل المثال ، البحث ، الصفحة التالية ، الصفحة السابقة) متطابقة. - Jeremy W. Sherman
مجرد FYI ، على الكثير من النظم ، view هو اسم مستعار لـ vim -R. - Andrew Ferrier


كما قال الآخرون ، يمكنك استخدام قوة vim. ولكن الأهم من ذلك ، يمكنك القيام بذلك دون تعلم كيفية استخدام vi / vim.

فيم يأتي مع less.vim النصي الذي يعمل بشكل جيد كبديل لأقل من ذلك ، مع تسليط الضوء على بناء اللون الكامل. يستخدم less keybindings (فقط اضغط على "q" للإقلاع).

كان لديه بعض المشاكل ، لذلك قمت بتحسينه. لدي لقطة شاشة في http://huyz.us/2011/a-less-like-pager-with-color-syntax-highlighting/


13
2017-07-04 05:35



رائع! ولكن بما أنني لم أتمكن من العثور على النص على الفور ، أود أن أشاركه في تحديد موقعه: find /usr/share/vim -name 'less.sh' الذي يؤخذ من هذا gist: gist.github.com/chauncey-garrett/9773770 - yoshi
إضافة إلى تعليق yoshi @ ، لإضافة بسرعة vimless القيادة (بعد تسمية vimdiff)، فعل: ln -s $(find /usr/share/vim -name 'less.sh') /usr/local/bin/vimless - waldyrious
الرابط هو 404! - acgtyrant


كنت أيضاً أبحث عن هذا ووجدت حلاً آخر باستخدام Vim: http://ubuntu-tutorials.com/2008/07/14/use-vim-as-a-syntax-highlighting-pager/

هذا المنشور قديم نوعًا ما ، لذلك الآن ، يتم شحن distros vim 7.2 الأحدث وسيقرأ .bashrc: الاسم المستعار vless = 'vim -u /usr/share/vim/vim72/macros/less.vim'


9
2018-02-10 13:43



MacVim يأتي مع برنامج نصي shell يمكنك استخدامه مباشرة ، ويقع في: /Applications/MacVim.app/Contents/Resources/vim/runtime/macros/less.sh - Nick
تم توثيق هذه الميزة في Vim نفسها تحت :help less - joeytwiddle


يسعدني أن أعلن عن حزمة جديدة ، e2ansi، الذي يوفر بناء جملة تسليط الضوء على دعم الاستدعاء مثل more و less.

الحزمة تستخدم أم جميع محرري النصوص ، إيماكس، إلى تنفيذ تسليط تركيب الجمل الفعلية. كمكافأة إضافية ، كل الآخرين التحويلات التي يقوم بها Emacs عادة - مثل الملفات غير المضغوطة - يتم أيضا تنفيذ.

مثال

التالي هو نتيجة عرض ملف باستخدام less و e2ansi:

Example

ترتيب

توفر الحزمة أداة سطر أوامر e2ansi-cat هذا يبدأ إيماكس في وضع دفعي ، يفتح ملفات ، بناء الجملة تسليط الضوء عليها ، ويجعل النتيجة باستخدام تسلسل 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 يشير إلى أن مرشح الإدخال ينبغي أيضا أن تستخدم عند piping النص في less. في هذه الحالة ، يمكن Emacs تعتمد فقط على النص نفسه (وليس اسم ملف). لحسن الحظ ، إيماكس يوفر نظام لهذا. بالإضافة إلى ذلك ، ملف ملف المقدمة e2ansi-magic.el يقوم بإعداد أنواع ملفات إضافية. فمثلا:

Pipe example

لماذا استخدام Emacs؟

  • ايماكس لديها دعم تقريبا لجميع لغات البرمجة و تنسيقات نصية منظمة. في معظم الحالات ، تسليط الضوء على بناء الجملة الدعم ممتاز.
  • يمكنك بسهولة إضافة دعم لمزيد من اللغات والتنسيقات ، أو تعديلها الحزم الحالية لتناسب احتياجاتك.
  • تدعم Emacs موضوعات الألوان. عند استخدام e2ansiوالألوان في يتم الاحتفاظ بالموضوع عند عرض ملف في less. يمكنك اختيار موضوع ملون مناسب من عدد من المصادر ، أو تصميم خاص بك.
  • إذا كنت تستخدم Emacs كمحرر من اختيارك ، فسوف تحصل على نفس الشيء تمييز في المحرر كما تحصل عند عرض ملف باستخدام less (ناقص قيود في تنسيق تسلسل ANSI والمطراف نافذة او شباك).
  • less سيستفيد من ميزات Emacs التي تعمل تلقائيًا تحويل ، على سبيل المثال إلغاء ضغط الملفات. في الواقع ، يمكنك التدريس إيماكس لأداء أي نوع من التحويل مثل تحويل تلقائيا ثنائي الملف إلى شكل قابل للقراءة الإنسان باستخدام أداة خارجية.
  • يمكنك عرض الملفات الموجودة على أجهزة أخرى باستخدام بنية Emacs ' للوصول عن بعد مثل /USER@HOST:FILENAME.

روابط مفيدة

  • e2ansi يتم توزيعها على Melpa ويمكن تثبيته باستخدام نظام الحزمة Emacs القياسية
  • e2ansi مستضاف على جيثب
  • ال e2ansi الصفحة على ايماكس يكي
  • منزل less.

ملاحظات نظام التشغيل

  • على Microsoft Windows ، لا يعتمد وحدة التحكم أصلاً متواليات ANSI. لحسن الحظ ، فإن less التطبيق قادر على تقديمها. أنا لست على علم بأي توزيع ثنائي معاصر لـ less إلى عن على يصعب استخدام MS Windows وملفات الإنشاء المتوفرة. لحسن الحظ، من السهل بناء less استخدام CMake، نرى هذا النص إلى عن على تفاصيل.

  • OS X يوزع نسخة قديمة من less. لحسن الحظ ، إنه من السهل بناء نسخة حديثة مباشرة من المصدر.


7
2018-02-04 19:10



بالنسبة إلى نظام التشغيل OS X ، أوصيك باستخدام مدير الحزمة خمر [brew.sh/] مع يغسل الشراب [github.com/Homebrew/homebrew-dupes] لتثبيت إصدارات حديثة لأشياء مثل less. - drevicko
"مدعوم من emacs" - تشغيل VM كله فقط لإلقاء نظرة على الملف؟ ؛-) و +1 - Alois Mahdal


اذا كنت تمتلك غنو مصدر الضوء مثبت يمكنك استخدام الأمر التالي لتسليط الضوء على بناء جملة ملف واحد:

$ src-hilite-lesspipe.sh yourfile.xml | less -R

6
2018-04-07 07:52



يستطيع src-hilite-lesspipe.sh تلقي المدخلات عبر الأنابيب كذلك؟ - waldyrious


source-highlight لديه .sh النصي الموجود في /usr/share/source-highlight/*.sh. لقد قمت بإنشاء ارتباط رمزي لها بالاسم hcat في /usr/bin.

فإنه يظهر الإخراج المميز في المحطة الطرفية (وحدة التحكم) - hcat هو أبرز القط.

كيف:

[me@this]<bash><~> 43 
21:23 Fri Apr 19 > sudo apt-get install source-highlight

[me@this]<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*

[me@this]<bash><~> 29 
21:04 Fri Apr 19 > sudo su
root@this:/home/me# cd /usr/bin/
root@this:/usr/bin# ln -s /usr/share/source-highlight/src-hilite-lesspipe.sh hcat

[me@this]<bash><~> 36 
21:07 Fri Apr 19 > hcat test.xml

2
2018-04-19 18:25





باستخدام نظام التشغيل OS X 10.9 (مافريك) هذا من شأنه أن يفعل خدعة:

  • brew install source-highlight (على افتراض تثبيت الشراب - http://brew.sh)
  • sudo nano /etc/launchd.conf

    setenv LESSOPEN="| /usr/local/bin/src-hilite-lesspipe.sh %s"     
    setenv LESS=' -R '
    

    (أضف إلى /etc/launchd.conf)

  • اعادة التشغيل


2
2018-04-07 19:21