it-swarm.asia

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

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

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

less htmleditors/htmleditors_config.xml

أو

less [multiple files]

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

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

130
Jesper Rønn-Jensen

يمكنك استخدام تسليط الضوء على مصدر جنو ، كما هو مبين هنا (قد المسار تختلف ، انظر أدناه):

 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
    
120
brandstaetter

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

91
JiM
pygmentize somefile.ex | less -R

أو

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

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

32
user31752

أعتقد أنه يجب عليك استخدام محرر نصوص. أنا أحب 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)

16
sixtyfootersdude

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

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

كان لديه بعض المشاكل ، لذلك قمت بتحسينه . في ما يلي لقطة شاشة من منشور مدونتي عليها (تم أرشفت 2013-04-09 ؛ رميات أصلية 503):

screenshot of https://github.com/huyz/less.vim

15
huyz

كنت أبحث أيضًا عن هذا ووجدت حلاً آخر باستخدام 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'

10
Lorenzo

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

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

مثال

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

Example

ترتيب

توفر الحزمة أداة سطر أوامر 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 بإعداد أنواع ملفات إضافية. فمثلا:

Pipe example

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

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

روابط مفيدة

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

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

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

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

8
Lindydancer

إذا كان لديك GNU Source-highlight مثبتًا ، يمكنك استخدام الأمر التالي لتمييز بناء جملة ملف واحد:

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

باستخدام 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
TeNGiL

يحتوي 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
2
Vitalie Ghelbert

لقد وجدت highlight والتي:

  • يدعم أنظمة ألوان متعددة و 256 لونًا
  • يعمل على STDIN (على عكس source-highlight)
  • أسرع بكثير من pygmentize

Screenshot

فيما يلي نص أتصل به 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
0
Tom Hale

في نظام التشغيل mac ، يمكنك فقط كتابة view filename ، هل يفعل الشيء نفسه أقل.

0
Alan Dong

كان لدي نفس السؤال ، وهبطت سمعت ، وقرأت جميع الإجابات ، وفيما يلي ما فعلته أخيرًا لتوضيح بناء الجملة في كل مرة أستخدم فيها 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
0
Mehrad Mahmoudian

إذا كنت تريد بناء الجملة نفسه الذي تبرزه في 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 أعلاه يمكن أن تساعد في تخفيف ذلك.

0
joeytwiddle

بعد تثبيت جنو تسليط الضوء على المصدر (الحزمة 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 لأن هذا له ميزات أخرى. لم سلسلة لا تعمل.

0
comonad