2021年2月16日火曜日

Emacs のコピー/ペーストをシステムのコピー/ペーストに反映させる

Emacs のコピー/ペーストをシステムのコピー/ペーストに反映させるには、autocutsel を使う。

(ウィンドウマネージャの起動時に実行するように設定する)
autocutsel -fork
autocutsel -fork -selection PRIMARY

■参考
https://stackoverflow.com/questions/3216081/integrate-emacs-copy-paste-with-system-copy-paste

● Emacs, emacs, copy, paste, system, integrate, コピー, ペースト, システム, 同期, 反映

Mew で gb2312 のメールを読む

たまにあるのでメモ。

C-c C-l Chinese-GBK を入力

● Mew, mew, gb2312, 文字化け, Chinese-GBK

tree コマンドの表示をアスキー表示にする

$ tree --charset=x

● tree, ascii, アスキー, 文字化け

2021年2月13日土曜日

sudo で環境変数を引き継ぐ (sudo -E)

sudo を実行するときに、proxy の設定とかが引き継がれないことがある。
sudo 実行時に、環境変数を引き継ぐオプション -E を使用すれば良い。

$ sudo -E ...

● sudo, 環境変数, proxy

cp コマンドでディレクトリごと上書きコピー

cp コマンドで、ディレクトリごと上書きコピーする。
既にある foo ディレクトリに bar ディレクトリを上書きコピーする場合。

$ cp -r bar -T foo

● cp, directory, overwrite, ディレクトリ, 上書き, コピー, オプション, option

2021年2月12日金曜日

wget で複数ファイルをダウンロードする (wget, xargs)

複数ファイルをテキストファイルにリスト化しておいて、wget でダウンロードさせる方法のメモ。

urls.txt ファイルにダウンロードしたい URL のリストを記述

$ vi urls.txt
(下記を記述)
ftp://hogehoge.org/hogehoge1.tar.gz
ftp://hogehoge.org/hogehoge2.tar.gz
ftp://hogehoge.org/hogehoge3.tar.gz

xargs と wget でダウンロード。wget の -c オプションは、レジューム。途中、停止したときに再開できる。

$ xargs -P 20 -n 1 wget -c --user=hogehoge --password=hogehoge < urls.txt

● wget, xargs, urls.txt, 一括, 自動, ダウンロード, レジューム, download

2021年2月10日水曜日

SVN で、ローカルのツリーをサーバと同じ状態にする SVN-DISTCLEAN

SVN で、チェックアウトしたローカルのツリーをサーバと同じ状態にしたいことがある。
make でいうところの、distclean みたいなやつ。
そんな便利コマンドは無いので、bash の function に SVN-DISTCLEAN というコマンドを追加する。

function SVN-DISTCLEAN () {
    svn status --no-ignore
    svn status --no-ignore | cut -c 2- | xargs rm -rf
    svn revert -R .
    svn update
    svn status --no-ignore
}

■ 使い方

ツリーに移動して、SVN-DISTCLEAN を実行。
作業中のファイルがある場合は、悲しいことになってしまうので注意。

$ SVN-DISTCLEAN

● SVN-DISTCLEAN, svn, distclean

2021年2月9日火曜日

tidy コマンドで XML ファイルを整形する

XML ファイルを整形するコマンド。

$ tidy -i -w 0 -xml -utf8 ./hogehoge.xml > hogehoge-out.xml

● tidy, xml, XML, 整形

2021年2月8日月曜日

Windows10 で、Caps Lock キーを Ctrl にする (レジストリ変更)

Windows10 で、Caps Lock キーを Ctrl キーに割り当てる設定メモ。
レジストリを変更する方法で。
(レジストリを変更するので、自己責任でお願いします)

■ 変更するレジストリ

レジストリキーコンピューター -> HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> Keyboard Layout
種類バイナリ値 (REG_BINARY)
データ00 00 00 00 00 00 00 00 02 00 00 00 1d 00 3a 00 00 00 00 00

■ 設定を有効にする reg ファイル

caps2ctrl.reg ファイルを作成して実行する。中身は下記。
実行後、再起動。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00

先頭から、4 バイトずつ
00,00,00,00 : ヘッダ (バージョン)
00,00,00,00 : フラグ
02,00,00,00 : エントリー数 (NULL 終端含む)
1d,00,3a,00 : キーコード変換 (003a を 001d に変換)
00,00,00,00 : NULL 終端

■ 設定を解除する reg ファイル

remove_caps2ctrl.reg ファイルを作成して実行する。中身は下記。
実行後、再起動。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=-

■ Windows キーも合わせて無効化したい場合の reg ファイル

Windows キーも不要という人 (=自分) は、下記を使います。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,1d,00,3a,00,00,00,5b,e0,00,00,5c,e0,00,00,00,00

00,00,00,00 : ヘッダ (バージョン)
00,00,00,00 : フラグ
04,00,00,00 : エントリー数 (NULL 終端含む)
1d,00,3a,00 : キーコード変換 (003a Caps Lock を 001d Ctrl に変換)
00,00,5b,e0 : キーコード無効 (e05b 左 Win を無効化)
00,00,5c,e0 : キーコード無効 (e05c 右 Win を無効化)
00,00,00,00 : NULL 終端

● windows, windows10, caps, caps lock, ctrl, control, キャプスロック, コントロール, キー, 変更, 入れ替え, 割り当て, regedit, レジストリ, registry, win キー, win key, windows キー, windows key, 無効, 無効化

2021年2月5日金曜日

fzf インストールメモ

fzf をインストールするときに、毎回迷うのでメモしておく。
今回は、Ver.0.25.1 の例。シェルは bash。

1. fzf の github からリリースバージョンをダウンロード

git でやっても良いが、下記から tar.gz をダウンロード。

https://github.com/junegunn/fzf/tags

2. インストール

$ tar zxvf fzf-0.25.1.tar.gz
$ cd fzf-0.25.1

$ ./install
Downloading bin/fzf ...
  - Already exists
  - Checking fzf executable ... 0.25.1
Do you want to enable fuzzy auto-completion? ([y]/n) n
Do you want to enable key bindings? ([y]/n) n

Generate /home/masao/.fzf.bash ... OK

Do you want to update your shell configuration files? ([y]/n) n 

Update /home/ohmoto/.bashrc:
  - [ -f ~/.fzf.bash ] && source ~/.fzf.bash
    ~ Skipped

For more information, see: https://github.com/junegunn/fzf

$ sudo cp bin/fzf* /usr/local/bin
$ sudo cp man/man1/fzf* /usr/share/man/man1/
$ cp shell/completion.bash ~/.fzf_completion.bash
$ cp shell/key-bindings.bash ~/.fzf_key-bindings.bash

3. 設定

.bashrc に、下記を設定。設定はお好みで。

export HISTSIZE=100000
export HISTCONTROL=ignoreboth:erasedups                     # history を重複登録しないための設定
export PROMPT_COMMAND='history -a; history -c; history -r'  # 複数のシェルで history を共有するための設定
shopt -u histappend                                         # 同上

source ~/.fzf_completion.bash
source ~/.fzf_key-bindings.bash
export FZF_DEFAULT_OPTS='--height 40% --reverse --border'
export FZF_CTRL_R_OPTS="--preview-window up:3:wrap --preview 'echo {}'"

● fzf, history, 重複