公開日: 2021年10月19日
その他の話題
単独では記事にならない話題をこのページに突っ込んでゆこうと思います。ほとんど備忘録のようなものなので、あまりエッジの立った話題はありません…
目次
sudo
これを導入することで、一般ユーザが root 権限でプログラムを実行することができるようになります。packages からインストールし、visudo コマンドで権限に関する設定を行います。こういうところで vi の操作が要求されるので、最低限の使い方だけは覚えるようにしています。 visudo コマンドを通じて /usr/local/etc/sudoers を編集することになります。その書き方は sudoers(5) のマニュアルを参照してもらいたいのですが、大ざっぱにいえば「誰が どのマシンから=(誰の権限で) どのコマンドを」というように書きます。例えば私のパソコンは私しか使わないので、「私 nobiru が」「すべてのホストから」「全員の権限で」「すべてのコマンドを」ついでに「パスワードなしで」実行できるようにしてみましょう (全能の神になった気分)。次のように書きます。 こうしておけば、次からは一般ユーザで ということができるようになるわけです。
# pkg install sudo
# visudo
nobiru ALL=(ALL) NOPASSWD:ALL
% sudo visudo
zsh
zsh が「その他の話題」扱いなのは、ひとえに私が使いこなせていないためであります。ここでは、導入から設定まで最低限のことだけを書くにとどめます。ports/packages からインストールし、chsh コマンドでシェルの切り替えを行います。 chsh コマンドを実行して表示された画面の「Shell:」で始まる行を zsh へのパスに書き換えます。zsh のインストール先がデフォルトのままなら /usr/local/bin/zsh になります。 この画面での操作方法は visudo のときと同様、つまり vi と同じです。そしてホームディレクトリに .zshrc を作成します。
# pkg install zsh
% chsh
Shell: /usr/local/bin/zsh
~/.zshrc
autoload -U compinit
compinit
path=(/sbin(N-/) /bin(N-/) /usr/sbin(N-/) /usr/bin(N-/) /usr/local/sbin(N-/) /usr/local/bin(N-/) $HOME/bin(N-/) $path)
alias sudo='sudo '
alias ll='ls -alF --color=never'
alias la='ls -aF --color=never'
alias ls='ls -F --color=never'
alias emacs='XMODIFIERS=@im=none emacs'
export LANG=ja_JP.UTF-8
PROMPT="%/%% "
PROMPT2="%_%% "
HISTSIZE=50
HISTFILE=~/.zhistory
SAVEHIST=50
1,2行目: | zsh の補完機能を有効にするための記述らしいです。 |
4行目: | path の設定。「(N-/)」を付けると、そのディレクトリが存在しない場合は path に追加しません。 |
6~10行目: | コマンドのエイリアス。 |
10行目: | Emacs で XIM を無効にするための設定。「Fcitx と Mozc で日本語入力」参照。 |
12行目: | 言語環境の設定。 |
14行目: | プロンプトの設定。前半の「%/」がカレントディレクトリの絶対パスを、後半の「%%」が「%」自身を表します。結果として「/path/to/workdir%」のようなプロンプトになります。詳しくは下記 URL を参照してください。 |
15行目: | if 文、for 文などでコマンドが複数行にわたるとき、2 行目以降に表示されるプロンプトの設定。次のような感じになります。
|
17~19行目: | コマンド履歴の保存に関する設定。 |
nkf 備忘録
- 文字コードの判定 (-g は guess の g だったと思います)
% nkf -g hoge.txt
- hoge.txt をUTF-8、EUC-JP、SJIS に変換してそれぞれ hoge-u.txt、hoge-e.txt、hoge-s.txt にリダイレクトする。
% nkf -w hoge.txt > hoge-u.txt % nkf -e hoge.txt > hoge-e.txt % nkf -s hoge.txt > hoge-s.txt
% nkf -w --overwrite hoge.txt
- 改行コードを DOS から UNIX へ変換
% nkf -Lu hoge.txt > hoge-Lu.txt
- 改行コードを UNIX から DOS へ変換
% nkf -Lw hoge.txt > hoge-Lw.txt
Kompare (テキスト差分表示ツール)
私はテキストファイルの差分表示に Kompare というソフトを使っています。ポイントは
「保存」「Save All」「Unapply All」「Unapply Difference」「Apply Difference」「Apply All」を「現在のアクション」から「利用可能なアクション」に移動する。
- ただのビューアとして使える。マージはできなくてよい (Emacs の ediff で行うので)。
- 外観がシンプル。その分本文のエリアを広く表示してくれる。
- 設定方法がわかりやすい
ナビゲーションペインを非表示にする
「&Navigation」と書かれているバーの右端にある×ボタンで消す。元に戻したいときは、メニューバーを右クリック > [Navigation] のチェックをオンにする。ステータスバーを非表示にする
[設定] > [ステータスバーを表示] のチェックを外す。ツールバー上のアイコンの説明テキストを非表示にする
ツールバー右クリック > [テキストの位置] > [Icons only] を選択。ツールバー上のアイコンのサイズを変更する
ツールバー右クリック > [アイコンサイズ]ツールバーから保存・マージ関係のボタンを削除する
ツールバー右クリック > [ツールバーを設定] > [mainToolBar <kompare_part>]「保存」「Save All」「Unapply All」「Unapply Difference」「Apply Difference」「Apply All」を「現在のアクション」から「利用可能なアクション」に移動する。
色の設定
[設定] > [Kompare を設定] > [View] > [Appearance] タブ- Removed color: #EDBEBE (HTML)
- Changed color: #BEBEED (HTML)
- Added color: #BEEDBE (HTML)
- Applied color: よくわからないのでそのまま
フォントを Ricty にする
[設定] > [Kompare を設定] > [View] > [Fonts] タブキーボードショートカット
[設定] > [Configure Keyboard Shortcuts]- 保存・マージ関係のボタンはショートカットなしに設定。
- ついでに印刷関係もなしに設定。
- Next Difference: N
- Next File: Ctrl+Shift+N
- Previous Difference: P
- Previous File: Ctrl+Shift+P
その他
- ファイル選択ダイアログでは、デフォルトでは隠しファイル (ドットファイル) は表示されません。表示させるには、ファイル一覧の適当な場所で右クリック > [Show hidden files] のチェックをオンです。
- キーボードショートカットの設定項目にはありませんが、h、j、k、l キーで上下左右にスクロールできるようです。
各種バイナリエディタの比較
次の 2 点をクリアするバイナリエディタを探しているのですが、これこそはというものはなかなかありませんね…。Windows でいうところの Stirling のようなソフトがあるといいんですが。
- バイナリレベルでファイルの比較ができる。
- 行幅 (1 行あたりの表示バイト数) を指定できる。または 16 固定でも可。
名称 | UI | ファイル比較 | 行幅指定 | 設定ファイル | その他 |
---|---|---|---|---|---|
cmp コマンド | CUI | 〇 | ― | ― | (*1) |
hexer | TUI | ×? | 16 固定? | なし? | (*2) |
dhex | TUI | 〇 | ×? | ~/.dhexrc | ― |
wxHexEditor | GUI | 〇 | ×? | ~/.wxHexEditor | ― |
ghex | GUI | ×? | ×? | なし? | ― |
okteta | GUI | ×? | 〇 | ~/.config/octetarc | (*3) |
(*1) | 「-l」オプションで相違箇所の一覧を表示できる |
(*2) | 操作が vi 風なのは〇, 背景色がけっこうどぎつい |
(*3) | メニューからファイルが開けない気がする (コマンドラインで指定すれば可) |
Firefox
あまり凝った使い方はしていないので、ここでは基本的な設定をいくつかと、Chrome のブックマークをインポートすることと、拡張機能を 2、3 インストールするくらいになります。
メニューを日本語化
ハンバーガーボタン > [Settings] > [Language] コンボボックスから「Search for more languages...」を選択。[Firefox Language Settings] ダイアログが立ち上がるので、[Select a language to add...] コンボボックスから「Japanese」を選択して「Add」ボタン、「OK」ボタン、「適用して再起動」ボタンの順に押す。再起動後、メニューが日本語になる。Chrome からブックマークを移行する
- Chrome 側
- ブックマークマネージャのハンバーガーボタン > [ブックマークをエクスポート]
- ファイル名を入力して HTML ファイルとしてエクスポートする。
- Firefox 側
- ハンバーガーボタン > [ブックマーク] > [ブックマークを管理]
- 「ブラウジングライブラリー」ウィンドウのメニューバーにある [インポートとバックアップ] > [HTML からインポート]
- ファイル選択ダイアログにて Chrome からエクスポートした HTML ファイルを選択する。
ブックマークツールバーの設定
よく利用するサイトをブックマークツールバーに貼り付けておきましょう (図 3)。- まずはブックマークツールバーを表示させる。
タブバーを右クリック > [ブックマークツールバー] > [常に表示する] を選択。 - 再びタブバーを右クリック > [ツールバーをカスタマイズ]。
- 「Firefox をカスタマイズ」のウィンドウが開く (図 4)。
初期状態ではブックマークツールバーに「ブックマークをインポートする」アイコンと「ブックマークツールバーの項目」アイコンが登録されている。 - 「ブックマークをインポートする」は不要なので画面左側のアイコンペインに戻す。
- アイコンペインから「ブックマークメニュー」をツールバーに登録する。ここで注意点として、「ブックマークツールバーの項目」を削除してしまうと、他のボタンがすべてツールバーの左側に貼り付いてしまう (図 5)。ボタンをツールバーの右側に置きたいのであれば、「ブックマークツールバーの項目」をツールバー上に残しておく必要があるようだ?残しておいても実際には表示されないので、無理に削除することはない。
- 完了ボタンを押して画面を閉じる。
- Chrome のブックマークバーにあったブックマークは [ブックマークメニュー] > [ブックマークバー] の下に置かれているので、これをドラッグ&ドロップでブックマークツールバーに移動する。
- ブックマークツールバーに登録するサイトは、たいてい説明不要のサイトなので、アイコンのキャプションを削除して見た目をスッキリさせる。アイコンを右クリック > [ブックマークを編集] で名前欄を空にすればよい。
拡張機能
- Vimium-FFこれが便利すぎることは、vi をたまにしか使わない私にもわかるんですが、なぜかたまにキーが効かなくなることがあり、そこだけが不満です。
- ShortkeysC-n や C-p などとやってしまいがちな Emacs 使いの私には救世主のような拡張機能です。"ctrl+p" を Scroll up に、"ctrl+h" を Go back にするだけでかなり救われます。ところがなぜか "ctrl+n" だけは Scroll down にしても Do nothing にしても相変わらず新しいウィンドウが立ち上がり続けます(涙)
- Simple Translateこの歳になっても英語レベルが "This is a pen." な私には救世主のような拡張機能です。ページ全体を翻訳したり、選択したテキストだけを翻訳したりしてくれます。
- Markdown Viewer WebextMarkdown ビューア。ローカルな Markdown ファイルを開くには Markdown ファイルの拡張子に対する MIME タイプを設定する必要があります。詳細は下記の URL を参照。その方法は、まずアドレスバーに「about:config」と入力して表示される設定項目の一覧から「helpers.private_mime_types_file」が示すファイル名を調べます。デフォルトのままなら ~/.mime.types でしょう。そのファイルに次のように書いて保存し、Firefox を再起動します。あとは Ctrl-o でファイル選択ダイアログ開いて Markdown ファイルを選択すれば閲覧できます。~/.mime.types
type=text/plain exts=md, desc="Markdown document"
その他
- Firefox はバージョン 87 以降、初期設定では Backspace キーで「戻る」が無効になりました。有効にするにはアドレスバーに 「about:config」と入力して表示される設定項目の一覧から「browser.backspace_action」の値を 0 に変更します。
LaTeX と Evince (PDF ビューア)
LaTeX を用いて文書を組み版し、PDF に変換して閲覧するまでの備忘録です。Tex Live という TeX ディストリビューションをインストールすると、PDF 変換までに必要なツールが一式インストールされます。PDF ビューアには Evince、Okular、MuPDF などの選択肢がありますが、ここでは Evince から GNOME に依存する機能を排した (らしい) evince-lite というパッケージを使います。PDF だけでなく Postscript など複数のフォーマットに対応している模様です。 platex コマンドで LaTeX のソースファイルをコンパイルして DVI ファイルを得、dvipdfmx コマンドで DVI ファイルを PDF ファイルに変換します。ちなみに、LaTeX の tableofcontents コマンドで目次を生成している場合は、platex コマンドを 2 回実行する必要があります (そういえばそうだったなあ…)。 ところで、さっき初めて気がついたのですが、得られた PDF を眺めてみると、本文のフォントがゴシック体になっています (図 6)。その理由は、上のようにして作成した PDF がフォント埋め込みになっていないこと、そしてどうも Evince ではそのようなファイルに対してゴシック体が使われること、のようです。フォントを埋め込む方法は、下記のサイトに書かれていました。まず、システムにインストールされているフォントの中から、使用するフォントを選びます。 texfonts.map を作成します。「%」から始まる行はコメントになります。dvipdfmx コマンドの -f オプションに texfonts.map を指定します。 これで本文のフォントが明朝体になりました (図 7)。余談: Evince の操作方法は vi ライクになっており、vi に慣れ親しんでいる人ならすんなり操作できると思います。ただしカスタマイズはできないようです。普段使いが Emacs な私にとっては C-n が新規ウィンドウの起動に割り当てられていたり、C-p が印刷に割り当てられていたりするのが悲しいです。
# pkg install texlive-full evince-lite
% platex hoge.tex
% dvipdfmx hoge.dvi
% evince hoge.pdf &
LaTeX(DVI)から作成する PDF のフォント埋め込み
http://www.math.kobe-u.ac.jp/HOME/kodama/tips-latex-pdf-embedding.html
% fc-list | grep ipa
...
/usr/local/share/fonts/mplus-ipa/fonts/ipag.ttf: IPAゴシック,IPAGothic:style=Regular
/usr/local/share/fonts/mplus-ipa/fonts/ipam.ttf: IPA明朝,IPAMincho:style=Regular
...
fonts.map
% IPA-fonts
rml H :0:ipam.ttf
gbm H :0:ipag.ttf
rmlv V :0:ipam.ttf
gbmv V :0:ipag.ttf
% dvipdfmx -f texfonts.map hoge.dvi
ristretto (画像ビューア)
そこはかとなく Emacs 風な GNU nano
nano は Emacs のようにプレフィックスキーを持たないので、おのずから限界がありますが、なんとか Emacs 風のキーバインドになるように頑張った結果をここに掲載します。殊に C-s を上書き保存にするのか、はたまた文字列検索にするのかについては散々迷った挙げ句、上書き保存を採用しております。文字列検索のほうは F6、F7、F8 キーに追いやっております。各設定項目の詳細は nanorc(5) のマニュアルを参照してください。
~/.nanorc
set autoindent # オートインデント
set constantshow # ステータスバーを表示
unset linenumbers # 行番号表示 *しない*
set nohelp # ショートカット表示をしない
unset softwrap # 折り返し設定?
set nowrap # 折り返しを行わない
unset casesensitive # 検索で大文字小文字の区別を *しない*
set cutfromcursor # カーソル位置から行末までを切り取り
set tabsize 4 # タブ幅
set trimblanks # 折り返し時に行末に空白を挿入しない
#set saveonexit # 終了時に自動的に保存する
unset saveonexit # 終了時に未保存のバッファがあれば確認する
set indicator # 右端にスクロールバーを表示する
set minibar # タイトルバーの代わりにミニバーを画面底部に表示する
set mouse # マウスを有効にする
bind ^O insert main # ファイルを開く
bind ^S savefile main # ファイルを上書き保存
bind ^C exit all # nano を終了する
bind ^G cancel all # 操作をキャンセルする
bind ^F right main # カーソル 右
bind ^B left main # カーソル 左
bind ^P up main # カーソル 上
bind ^N down main # カーソル 下
bind ^A home main # カーソル 行頭
bind ^E end main # カーソル 行末
bind ^U pageup main # ページアップ
bind ^V pagedown main # ページダウン
bind ^L center main # カーソルのある行を画面の真ん中へ
bind M-L gotoline main # 行番号を指定してカーソル移動
bind ^D delete main # Delete
bind ^H backspace main # Backspace
bind ^J enter main # Enter
bind ^R replace main # 文字列置換 (確認あり)
bind ^Space mark main # マークセット
bind ^W cut main # カット
bind ^K cut main # カット
bind M-W copy main # コピー
bind ^Y paste main # ペースト
bind ^/ undo main # アンドゥ
bind M-/ redo main # リドゥ
bind ^Z suspend all # サスペンド
bind F1 help main # ヘルプ
bind F5 refresh main # バッファ再読み込み
bind F6 whereis main # 文字列検索
bind F7 findnext main # 文字列検索 次へ
bind F8 findprevious main # 文字列検索 前へ