lessで見ることができるファイルを構文ハイライトする方法はありますか?
実際に私はxmlファイルを開くためにこのコマンドを使用しています(そして時々それらのシリーズ)
less htmleditors/htmleditors_config.xml
または
less [multiple files]
私はLessを使い続けたい(そのプログラムをよりよく学ぶため、そして次のナビゲーションへの私の知識を使うために)
しかし、それはまた、ある種の基本的な構文の強調表示も必要です - 少なくともコメントの表示方法は異なります。あなたはそれをする方法を知っていますか?
GNUのsource-highlight を使うことができます、 here (パスは異なるかもしれません。下記参照):
export LESSOPEN="| /usr/bin/src-hilite-lesspipe.sh %s"
export LESS=' -R '
Debian StretchとFedora 25の時点で、パッケージ名とスクリプトパスは異なります
Debian:
Sudo apt install libsource-highlight-common source-highlight
dpkg -L libsource-highlight-common | grep lesspipe
# /usr/share/source-highlight/src-hilite-lesspipe.sh
Fedora:
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シンタックスハイライト の一部として提供されています。
私はあなたがテキストエディタを使うべきだと思います。私は自分自身を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や他のエディタを調べることもできますが、Ipersonallyvimを好むでしょう)
他の人が言ったように、あなたはvimの力を使うことができます。しかし重要なことに、あなたはvi/vimの使い方を学ぶことなしにそうすることができます。
Vimには、less.vim
スクリプトが付属しています。このスクリプトは、フルカラーの構文強調表示を使用して、lessの代替品として非常にうまく機能します。それはless
キーバインドを使います(やめるには 'q'を押してください)。
問題がいくつかあったので、 改善しました 。これが からの私のブログ投稿 からのスクリーンショットです(アーカイブ2013-04-09; original throws 503):
私もこれを探していて、Vimを使って別の解決策を見つけました: http://ubuntu-tutorials.com/2008/07/14/ use-vim-as-a-syntax-high -ighting-ページャ/
投稿はかなり古くなっているので、より最近のディストリビューションではvim 7.2が出荷され、.bashrcは次のようになります。
新しいパッケージ e2ansi を発表して嬉しいです。これはmore
name__やless
name__のようなページャの構文強調表示をサポートします。
このパッケージは、実際の構文の強調表示を実行するために、すべてのテキストエディタの母 Emacs を使用します。追加のボーナスとして、Emacsによって通常実行される他のすべての変換(ファイルの圧縮解除など)も実行されます。
以下は、less
name__およびe2ansi
を使用してファイルを表示した結果です。
このパッケージは、Emacsをバッチモードで起動し、ファイルを開き、構文を強調表示し、そしてANSIシーケンスを使って結果をレンダリングするコマンドラインツールe2ansi-cat
を提供します。
たとえば、次の変数をに設定することで、これをless
name__に統合できます(initファイルの場所は異なる場合があります)。
export "LESSOPEN=||-/usr/local/emacs --batch -Q -l ~/.emacs -l bin/e2ansi-cat %s"
export "LESS=-r"
alias "more=less -X -E"
上記の設定では、less
name__は元の端末ウィンドウの内容を復元しますが、more
name__はプロンプトの後に新しい内容を出力するだけです。
注:less
name__の古いバージョンを使用している場合は、||
または-
構文をサポートしていない可能性があります。その場合は、単にLESSOPEN=|/usr/local/emacs ...
を使用する必要があります。
less
name__の使用LESSOPEN
name__内の " - "文字は、テキストをless
name__にパイプ処理するときにも入力フィルターを使用する必要があることを示します。この場合、Emacsはテキストにのみ依存します(ファイル名には依存しません)。幸いなことに、Emacsはこのためのシステムを提供しています。さらに、提供されているファイルファイルe2ansi-magic.el
は追加のファイルタイプを設定します。例えば:
e2ansi
を使用するとき、less
name__内のファイルを表示するときにテーマの色は保持されます。あなたは多くの情報源から適切な色のテーマを選ぶか、あなた自身のものをデザインすることができます。less
name__を使用してファイルを表示したときと同じようにエディタ内で強調表示されます(ANSIシーケンスフォーマットとターミナルウィンドウでの制限を除く)。less
name__は、ファイルの解凍など、自動変換を実行するEmacsの機能を利用します。実際、Emacsに外部ツールを使ってバイナリファイルを人間が読める形式に自動的に変換するような、あらゆる種類の変換を実行するように教えることができます。/USER@Host:FILENAME
のようなリモートアクセス用の構文を使って、他のマシンにあるファイルを見ることができます。e2ansi
は Melpa で配布されており、標準のEmacsパッケージシステムを使ってインストールすることができます。e2ansi
は GitHub でホストされています。e2ansi
ページless
NAME _ のホーム。GNU Source-highlight がインストールされている場合は、次のコマンドを使用して単一ファイルの構文を強調表示できます。
$ src-hilite-lesspipe.sh yourfile.xml | less -R
OS X 10.9(Maverick)を使うと、これでうまくいくでしょう。
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
スクリプトがあります。 /usr/bin
にhcat
という名前のシンボリックリンクを作成しました。
それは端末(コンソール)で強調表示された出力を示します - 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
私は highlight
を見つけました:
source-highlight
とは異なります)pygmentize
よりはるかに速いですこれは私がhighlight-less-wrapper
と呼ぶスクリプトで、less
を設定してそれを自動的に使う方法についての.bashrc
の説明を含んでいます。
#!/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 "$@"; 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
マックでは、あなただけのview filename
をタイプすることができます、lessのような同様のことをします。
私は同じ質問をし、私は聞いて着陸し、すべての答えを読みました、そして以下は私がless
またはmost
を使うたびに構文の強調表示をするためにやっとしたことです:
Sudo apt install source-highlight
それから私はless
とmost
のエイリアスを作成しました(私はZSHを使用しますが、bashを使用する場合は.bashrc
ファイルのエイリアスを追加できます)。
vim ~/.zshrc
(vimで立ち往生するかもしれない人のために:プレス i 終了したら、編集モードに入ります。 Esc それから : それから x そして最後に Enter 変更を保存する)
そして、Debianベースのディストリビューション(Debian、Ubuntu、Mintなど)に以下の行を貼り付けてください。
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
のトリックはそれを軽減するのに役立ちます。
GNUの source-highlight (sabayon/gentooのdev-util/source-highlight
パッケージ)をインストールした後、これらのenvを/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
を置き換えるのが好きではありませんでした。それは他の機能を持っているからです。連結は機能しませんでした。