on master help sign in
bat/doc/README-ja.md
651 lines 26 kB history raw
1<p align="center">
2 <img src="logo-header.svg" alt="bat - a cat clone with wings"><br>
3 <a href="https://github.com/sharkdp/bat/actions?query=workflow%3ACICD"><img src="https://github.com/sharkdp/bat/workflows/CICD/badge.svg" alt="Build Status"></a>
4 <img src="https://img.shields.io/crates/l/bat.svg" alt="license">
5 <a href="https://crates.io/crates/bat"><img src="https://img.shields.io/crates/v/bat.svg?colorB=319e8c" alt="Version info"></a><br>
6 シンタックスハイライトとGitとの連携機能付きの <i>cat(1)</i> クローン。
7</p>
9<p align="center">
10 <a href="#シンタックスハイライト">特徴</a> •
11 <a href="#使い方">使い方</a> •
12 <a href="#インストール">インストール</a> •
13 <a href="#カスタマイズ">カスタマイズ</a> •
14 <a href="#プロジェクトの目標と既存の類似したOSS">プロジェクトの目標と既存の類似したOSS</a><br>
15 [<a href="../README.md">English</a>]
16 [<a href="README-zh.md">中文</a>]
17 [日本語]
18 [<a href="README-ko.md">한국어</a>]
19 [<a href="README-ru.md">Русский</a>]
20</p>
22### シンタックスハイライト
24`bat` は多くのプログラミング言語やマークアップ言語の
25シンタックスハイライトに対応しています:
27![Syntax highlighting example](https://imgur.com/rGsdnDe.png)
29### Gitの統合
31`bat` は `git` とも連携しており、差分を表現する記号が表示されます
32(図の左端):
34![Git integration example](https://i.imgur.com/2lSW4RE.png)
36### 印刷できない文字の表示
38`-A`/`--show-all` オプションをつけることで
39印刷できない文字を可視化できます:
41![Non-printable character example](https://i.imgur.com/WndGp9H.png)
43### 自動ページング
45出力が1つの画面に対して大きすぎる場合、`bat` は自身の出力をページャー(例えば `less`) にパイプで繋げます。
47### ファイルの連結
49あなたはさらにファイルを連結させるために使うことも可能です:wink:。
50`bat` は非対話型のターミナルを検出すると(すなわち他のプロセスにパイプしたりファイル出力していると)、
51`bat` は `cat` の完全互換として振る舞い、
52プレーンなファイルを表示します。
54## 使い方
56単一のファイルを表示させたい場合
58```bash
59> bat README.md
60```
62複数のファイルを一度に表示させたい場合
64```bash
65> bat src/*.rs
66```
68標準入力から自動的に構文を決定させたい場合(ハイライトされるのは、
69たいていは `#!/bin/sh` のようなシバンを利用して、
70ファイルの一行目から構文を決定できる場合のみです)
72```bash
73> curl -s https://sh.rustup.rs | bat
74```
76標準入力から明示的に言語を指定したい場合
78```bash
79> yaml2json .travis.yml | json_pp | bat -l json
80```
82空白文字を可視化させたい場合:
83```bash
84> bat -A /etc/hosts
85```
87`cat` の代わりに `bat` を使用する際の例:
89```bash
90bat > note.md # quickly create a new file
92bat header.md content.md footer.md > document.md
94bat -n main.rs # show line numbers (only)
96bat f - g # output 'f', then stdin, then 'g'.
97```
99### 他のツールとの統合
101#### `fzf`
103[`fzf`](https://github.com/junegunn/fzf) のプレビューウィンドウに `bat` を使用できます。
104その場合、`bat` の `--color=always` オプションを用いてカラー出力を強制しなければなりません。
105また、`--line-range` オプションを用いることで巨大なファイルの読み込み時間を制限できます:
106```bash
107fzf --preview 'bat --color=always --style=numbers --line-range=:500 {}'
108```
110詳しくは [`fzf` の `README`](https://github.com/junegunn/fzf#preview-window) を参照してください。
112#### `find` or `fd`
114`find` の `-exec` オプションを使用して、`bat` ですべての検索結果をプレビューできます:
115```bash
116find … -exec bat {} +
117```
119[`fd`](https://github.com/sharkdp/fd) を使用している場合は、`-X` /`-exec-batch` オプションを使用して同じことを行うことができます:
120```bash
121fd … -X bat
122```
124#### `ripgrep`
126[`batgrep`](https://github.com/eth-p/bat-extras/blob/master/doc/batgrep.md) では、[`ripgrep`](https://github.com/BurntSushi/ripgrep) 検索結果のプリンターとして `bat` を使用できます。
128```bash
129batgrep needle src/
130```
132#### `tail -f`
134`bat` を `tail -f` と組み合わせて、構文強調表示を使用して特定のファイルを継続的に監視できます。
135```bash
136tail -f /var/log/pacman.log | bat --paging=never -l log
137```
138注意事項:`tail -f`と組み合わせるには、ページングをオフにしなければなりません。また、この場合は構文が自動検出されないため、明示的に指定(`-l log`)しています。
140#### `git`
142`bat` を `git show` と組み合わせて、
143適切な構文強調表示を使用して特定のファイルの古いバージョンを表示できます:
144```bash
145git show v0.6.0:src/main.rs | bat -l rs
146```
148差分内の構文強調表示は現在サポートされていないことに注意してください。 これを探しているなら、[`delta`](https://github.com/dandavison/delta) をチェックしてください。
150#### `xclip`
152`bat` の出力の行番号と Git 変更マーカーにより、ファイルの内容をコピーするのが難しくなる場合があります。
153これを防ぐには、`-p` / `-plain` オプションを使用して `bat` を呼び出すか、
154単に出力を `xclip` にパイプします:
155```bash
156bat main.cpp | xclip
157```
158`bat` は出力がリダイレクトされていることを検出し、プレーンファイルの内容を出力します。
160#### `man`
162`bat` は `MANPAGER` 環境変数を設定することにより、
163`man` の色付けページャーとして使用できます:
165```bash
166export MANPAGER="sh -c 'col -bx | bat -l man -p'"
167man 2 select
168```
170フォーマットの問題が発生した場合は
171`MANROFFOPT="-c"` を設定する必要もあります。
173これを新しいコマンドにバンドルしたい場合は [`batman`](https://github.com/eth-p/bat-extras/blob/master/doc/batman.md) も使用できます。
175[Manpage syntax](assets/syntaxes/Manpage.sublime-syntax) はこのリポジトリで開発されており、まだ作業が必要であることに注意してください。
177#### `prettier` / `shfmt` / `rustfmt`
179[`prettybat`](https://github.com/eth-p/bat-extras/blob/master/doc/prettybat.md) スクリプトは、コードをフォーマットし、`bat` で印刷するラッパーです。
182## インストール
184[![Packaging status](https://repology.org/badge/vertical-allrepos/bat-cat.svg)](https://repology.org/project/bat-cat/versions)
186### On Ubuntu (`apt` を使用)
187*... や他のDebianベースのLinuxディストリビューション*
189Ubuntu Eoan 19.10 または Debian 不安定版 sid 以降の [the Ubuntu `bat` package](https://packages.ubuntu.com/eoan/bat) または [the Debian `bat` package](https://packages.debian.org/sid/bat) からインストールできます:
191```bash
192apt install bat
193```
195`apt` を使用して `bat` をインストールした場合、実行可能ファイルの名前が `bat` ではなく `batcat` になることがあります([他のパッケージとの名前衝突のため](https://github.com/sharkdp/bat/issues/982))。`bat -> batcat` のシンボリックリンクまたはエイリアスを設定することで、実行可能ファイル名が異なることによる問題の発生を防ぎ、他のディストリビューションと一貫性を保てます。
197``` bash
198mkdir -p ~/.local/bin
199ln -s /usr/bin/batcat ~/.local/bin/bat
200```
202### On Ubuntu (最新の `.deb` パッケージを使用)
203*... や他のDebianベースのLinuxディストリビューション
205batの最新リリースを実行する場合、または Ubuntu/Debian の古いバージョンを使用している場合は、[release page](https://github.com/sharkdp/bat/releases) から最新の `.deb` パッケージをダウンロードし、
206次の方法でインストールします:
207```bash
208sudo dpkg -i bat_0.18.3_amd64.deb # adapt version number and architecture
209```
211### On Alpine Linux
213適切なリポジトリが有効になっている場合は、
214公式のソースから [`bat` package](https://pkgs.alpinelinux.org/packages?name=bat) をインストールできます:
216```bash
217apk add bat
218```
220### On Arch Linux
222[Arch Linuxの公式リソース](https://www.archlinux.org/packages/community/x86_64/bat/)
223からインストールできます。
225```bash
226pacman -S bat
227```
229### On Fedora
231公式の [Fedora Modular](https://docs.fedoraproject.org/en-US/modularity/using-modules/) リポジトリから [the `bat` package](https://koji.fedoraproject.org/koji/packageinfo?packageID=27506) をインストールできます。
233```bash
234dnf install bat
235```
237### On Gentoo Linux
239公式ソースから
240[the `bat` package](https://packages.gentoo.org/packages/sys-apps/bat) をインストールできます。
242```bash
243emerge sys-apps/bat
244```
246### On Void Linux
248xbps-install経由で `bat` をインストールできます。
249```
250xbps-install -S bat
251```
253### On FreeBSD
255pkg を使用してプリコンパイルされた [`bat` package](https://www.freshports.org/textproc/bat) をインストールできます:
257```bash
258pkg install bat
259```
261または FreeBSD ポートから自分でビルドすることもできます:
263```bash
264cd /usr/ports/textproc/bat
265make install
266```
268### Via nix
270`bat` を [nix package manager](https://nixos.org/nix) 経由でインストールすることができます:
272```bash
273nix-env -i bat
274```
276### On openSUSE
278`bat` をzypperでインストールすることができます:
280```bash
281zypper install bat
282```
284### On macOS
286[Homebrew](http://braumeister.org/formula/bat)で `bat` をインストールできます:
288```bash
289brew install bat
290```
292または [MacPorts](https://ports.macports.org/port/bat/summary) で `bat` をインストールします:
294```bash
295port install bat
296```
298### On Windows
300Windowsにbatをインストールするいくつかのオプションがあります。
301batをインストールしたら [Windowsでのbatの使用](#windows-での-bat-の利用) セクションをご覧ください。
303#### With Chocolatey
305[Chocolatey](https://chocolatey.org/packages/Bat) から `bat` をインストールできます:
306```bash
307choco install bat
308```
310#### With Scoop
312[scoop](https://scoop.sh/) から `bat` をインストールできます:
313```bash
314scoop install bat
315```
317[Visual C ++再頒布可能](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) パッケージをインストールする必要があります。
319#### From prebuilt binaries:
321[リリースページ](https://github.com/sharkdp/bat/releases) からビルド済みのバイナリをダウンロードできます。
323[Visual C ++再頒布可能](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) パッケージをインストールする必要があります。
325### Via Docker
327コンテナ内で `bat` を使いたい方のために [Docker image](https://hub.docker.com/r/danlynn/bat/) が用意されています:
328```bash
329docker pull danlynn/bat
330alias bat='docker run -it --rm -e BAT_THEME -e BAT_STYLE -e BAT_TABS -v "$(pwd):/myapp" danlynn/bat'
331```
333### Via Ansible
335[Ansible](https://www.ansible.com/) でインストールすることができます:
337```bash
338# Install role on local machine
339ansible-galaxy install aeimer.install_bat
340```
342```yaml
343---
344# Playbook to install bat
345- host: all
346 roles:
347 - aeimer.install_bat
348```
350- [Ansible Galaxy](https://galaxy.ansible.com/aeimer/install_bat)
351- [GitHub](https://github.com/aeimer/ansible-install-bat)
353これは以下のディストリビューションで動作するはずです:
354- Debian/Ubuntu
355- ARM (eg. Raspberry PI)
356- Arch Linux
357- Void Linux
358- FreeBSD
359- MacOS
361### From binaries
364多くの異なるアーキテクチャのためのプレビルドバージョンを[リリースページ](https://github.com/sharkdp/bat/releases)からチェックしてみてください。静的にリンクされている多くのバイナリも利用できます: ファイル名に `musl` を含むアーカイブを探してみてください。
366### From source
369`bat` をソースからビルドしたいならば、Rust 1.51 以上の環境が必要です。
370`cargo` を使用してビルドすることができます:
372```bash
373cargo install --locked bat
374```
376一部のプラットフォームでは `llvm` および/または `libclang-dev` のインストールが必要になる場合があります。
378## カスタマイズ
380### ハイライト テーマ
382`bat --list-themes` を使うと現在利用可能なシンタックスハイライトのテーマを入手できます。
383`TwoDark` テーマを選ぶためには
384`--theme=TwoDark` オプションをつけるか `BAT_THEME` という環境変数に
385`TwoDark` を代入する必要があります。 シェルの起動ファイルに `export BAT_THEME="TwoDark"`
386と定義すればその設定が変わることはないでしょう。あるいは、 `bat` の
387[設定ファイル](#設定ファイル)を利用してください。
389カスタムファイルでさまざまなテーマをプレビューする場合は、
390次のコマンドを使用できます(これには [`fzf`](https://github.com/junegunn/fzf) が必要です)。
391``` bash
392bat --list-themes | fzf --preview="bat --theme={} --color=always /path/to/file"
393```
395`bat` はデフォルトだと黒い背景色のターミナルに適しています。
396しかし、`GitHub` や `OneHalfLight` のような白い背景色のテーマでもいい感じにすることができます。
397['新しいテーマの追加' セクションに従って](#新しいテーマの追加)
398カスタムテーマを使用することもできます。
400### 出力のスタイル
402`--style` を使うことで `bat` の表示の見た目を変更することができます。
403例えば、 `--style=numbers,changes` と入力します。
404すると、Gitの差分と行番号だけが表示され、グリッド線とファイルヘッダーは表示されません。
405環境変数に `BAT_STYLE` を定義するとこれらの設定を永続的に使用することができます。
406[設定ファイル](#設定ファイル) を参考にしても良いでしょう。
408### 新しい構文の追加 / 言語の定義
410`bat` はシンタックスハイライトのための [`syntect`](https://github.com/trishume/syntect/)
411という素晴らしいライブラリを使用しています。`syntect` は、
412[Sublime Text の `.sublime-syntax` ファイル](https://www.sublimetext.com/docs/3/syntax.html)
413とテーマを読み取ることができます。新しい構文を定義するために以下の手順を行います。
415構文定義ファイルを入れておくためのフォルダを作ります:
417```bash
418mkdir -p "$(bat --config-dir)/syntaxes"
419cd "$(bat --config-dir)/syntaxes"
421# Put new '.sublime-syntax' language definition files
422# in this folder (or its subdirectories), for example:
423git clone https://github.com/tellnobody1/sublime-purescript-syntax
424```
426次のコマンドを使用して、これらのファイルをバイナリキャッシュに解析します:
428```bash
429bat cache --build
430```
432最後に `bat --list-languages` と入力すると新しい言語が利用可能かどうかチェックします。
434デフォルトの設定に戻したいときは以下のコマンドを実行します:
436```bash
437bat cache --clear
438```
440### 新しいテーマの追加
442これは構文を新しく定義するやり方と非常に似ています。
444まず、新しいシンタックスハイライトのテーマのフォルダを作ります:
445```bash
446mkdir -p "$(bat --config-dir)/themes"
447cd "$(bat --config-dir)/themes"
449# Download a theme in '.tmTheme' format, for example:
450git clone https://github.com/greggb/sublime-snazzy
452# Update the binary cache
453bat cache --build
454```
456最後に、 `bat --list-themes` で新しいテーマが利用可能かチェックします
458### 異なるページャーの使用
460`bat` は環境変数 `PAGER` に使用するページャーを明記します。
461この環境変数が定義されていない場合、デフォルトで `less` が使用されます。
462もし、異なるページャーを使用したい場合は、`PAGER` を修正してください。
463または、`PAGER` を上書きする環境変数として `BAT_PAGER` を定義することも可能です。
465もし、ページャーにコマンドライン引数を渡したい場合は、
466`PAGER`/`BAT_PAGER` 環境変数を定義してください:
468```bash
469export BAT_PAGER="less -RF"
470```
472環境変数を利用する代わりに、 `bat` の [設定ファイル](#設定ファイル) を使用して設定も可能です(`--pager` オプション)
474**注意**: デフォルトにより、ページャーが `less` にセットされているならば
475`bat` はページャーの以下のコマンドラインオプション を受け付けるでしょう:
476`-R`/`--RAW-CONTROL-CHARS`, `-F`/`--quit-if-one-screen` そして `-X`/`--no-init`。
477最後のオプション(-X)は、530 より古いバージョンにのみ使用されます。
479`-R` オプションは、ANSIカラーを正しく解釈するために必要です。
4802番目のオプション(`-F`)は、出力サイズが端末の垂直サイズよりも小さい場合、すぐに終了するようにlessに指示します。
481これは、ページャーを終了するために `q` を押す必要がないため、小さなファイルに便利です。
4823番目のオプション(`-X`)は、`less` の古いバージョンの `--quit-if-one-screen` 機能のバグを修正するために必要です。
483残念ながら、`less` のマウスホイールのサポートも少なくなります。
485`less` の古いバージョンでマウスホイールのスクロールを有効にしたい場合は、
486`-R` だけを渡すことができます(上記の例のように、これは1画面終了機能を無効にします)。
487530以下の場合は、そのまま使用できます。
489### Dark mode
491macOSでダークモード機能を使用する場合、OSテーマに基づいて異なるテーマを使用するように `bat` を構成することができます。
492次のスニペットは、ライトモードの場合は `デフォルト` のテーマを使用し、
493ダークモードの場合は `GitHub` テーマを使用します。
495```bash
496alias cat="bat --theme=\$(defaults read -globalDomain AppleInterfaceStyle &> /dev/null && echo default || echo GitHub)"
497```
499## 設定ファイル
501`bat` は設定ファイルでカスタマイズすることが可能です。ファイルの場所はOSに依存します。
502使用しているOSのデフォルトパスを調べるには以下のコマンドを実行してください:
503```
504bat --config-file
505```
507または、`BAT_CONFIG_PATH` 環境変数を使用して、`bat` が
508構成ファイルのデフォルト以外の場所を指すようにすることができます:
509```bash
510export BAT_CONFIG_PATH="/path/to/bat.conf"
511```
513### フォーマット
515この設定ファイルはコマンドライン引数の単純なリストです。 `bat --help` を利用すると、利用可能なオプションとその値を閲覧することができます。さらに、`#` でコメント文を加えることができます。
517設定ファイルの例:
518```bash
519# Set the theme to "TwoDark"
520--theme="TwoDark"
522# Show line numbers, Git modifications and file header (but no grid)
523--style="numbers,changes,header"
525# Use italic text on the terminal (not supported on all terminals)
526--italic-text=always
528# Use C++ syntax for Arduino .ino files
529--map-syntax "*.ino:C++"
531# Use ".gitignore"-style highlighting for ".ignore" files
532--map-syntax ".ignore:Git Ignore"
533```
535## Windows での `bat` の利用
537Windows 上で `bat` はほとんど動作しますが、いくつかの機能は設定を必要をする場合があります。
539### ページング
541Windowsには、`more` 形式の非常に限られたページャーしか含まれていません。
542`less` 用のWindowsバイナリは、[ホームページ](http://www.greenwoodsoftware.com/less/download.html) または
543[Chocolatey](https://chocolatey.org/packages/Less) からダウンロードできます。
544これを使用するには、バイナリを `PATH` のディレクトリに配置するか、環境変数を定義します。[Chocolateyパッケージ](#on-windows) は `less` を自動的にインストールします。
546### 色
548Windows 10では、`conhost.exe` (コマンドプロンプト)と
549[v1511](https://en.wikipedia.org/wiki/Windows_10_version_history#Version_1511_(November_Update)) 以降の PowerShell の両方、
550およびbashの新しいバージョンの色がネイティブにサポートされています。 以前のバージョンのWindowsでは、
551[ConEmu](https://conemu.github.io/) を含む [Cmder](http://cmder.net/) を使用できます。
553**注意:** Git と MSYS の `less` はWindows上で色を正しく解釈しません。
554もし、あなたが他のページャーをインストールしていないのであれば、 `--paging=never` オプションを付け加えるか
555`BAT_PAGER` に空文字を設定することでページングを完全に無効にできます。
557### Cygwin
559Windows上の `bat` は Cygwin のunix風のpath(`/cygdrive/*`)をネイティブサポートしていません。絶対的なcygwinパスを引数として受けたときに、 `bat` は以下のエラーを返すでしょう: `The system cannot find the path specified. (os error 3)`
561wrapperを作成するか、以下の関数を `.bash_profile` に追記することで、この問題を解決することができます:
563```bash
564bat() {
565 local index
566 local args=("$@")
567 for index in $(seq 0 ${#args[@]}) ; do
568 case "${args[index]}" in
569 -*) continue;;
570 *) [ -e "${args[index]}" ] && args[index]="$(cygpath --windows "${args[index]}")";;
571 esac
572 done
573 command bat "${args[@]}"
575```
577## トラブルシューティング
579### ターミナルと色
581`bat` はターミナルがトゥルーカラーをサポートしている/していないに関係なくサポートします。
582しかし、シンタックスハイライトのテーマの色が8-bitカラーに最適化されていない場合、
58324-bitであるトゥルーカラーをサポートしているターミナルを使用することを強く推奨します(`terminator`, `konsole`, `iTerm2`, ...)。
584この [記事](https://gist.github.com/XVilka/8346728) には
58524-bitカラーがサポートされているターミナルの一覧が掲載されています。
587本当の色をターミナルにセットするために、環境変数 `COLORTERM` に `truecolor` か
588`24bit` のどちらかを代入してください。さもなければ、`bat` はどの色を使うのか決定することができません。または、24-bit エスケープシーケンスがサポートされません
589(そして、8-bit colorに戻ります)。
591### 行番号とグリッド線がほとんど見えない
593異なるテーマを試してみてください(`bat --list-themes` でテーマを閲覧できます)。
594`OneHalfDark` と `OneHalfLight` テーマはグリッド線と線の色を明るくします。
596### ファイルエンコーディング
598`bat` は UTF-16 と同様に UTF-8 をネイティブにサポートします。
599他のすべてのファイルエンコーディングでは、エンコーディングは通常自動検出できないため、最初に UTF-8 に変換する必要があります。
600これを行うには `iconv` を使用できます。
601例: Latin-1(ISO-8859-1)エンコーディングの PHP ファイルがある場合、次のように呼び出すことができます:
602``` bash
603iconv -f ISO-8859-1 -t UTF-8 my-file.php | bat
604```
605注: `bat` が構文を自動検出できない場合は
606`-l` / `-language` オプションを使用する必要がある場合があります。
608## 開発
610```bash
611# Recursive clone to retrieve all submodules
612git clone --recursive https://github.com/sharkdp/bat
614# Build (debug version)
615cd bat
616cargo build --bins
618# Run unit tests and integration tests
619cargo test
621# Install (release version)
622cargo install --locked
624# Build a bat binary with modified syntaxes and themes
625bash assets/create.sh
626cargo install --locked --force
627```
629## Maintainers
631- [sharkdp](https://github.com/sharkdp)
632- [eth-p](https://github.com/eth-p)
634## プロジェクトの目標と既存の類似したOSS
636`bat` は以下の目標を達成しようと試みています:
638- 美しく高度なシンタックスハイライトの提供
639- ファイルの差分を表示するためのGitとの連携
640- (POSIX) `cat` との完全互換
641- ユーザーフレンドリーなコマンドラインインターフェースの提供
643あなたが同様のプログラムを探しているなら、多くの選択肢があります。
644比較については [このドキュメント](alternatives.md) を参照してください。
646## ライセンス
647Copyright (c) 2018-2021 [bat-developers](https://github.com/sharkdp/bat).
649`bat` は MIT License 及び Apache License 2.0 の両方の条件の下で配布されています。
651ライセンスの詳細については [LICENSE-APACHE](../LICENSE-APACHE) 及び [LICENSE-MIT](../LICENSE-MIT) ファイルを参照して下さい。