Vimコマンド逆引きの逆引き辞典

Vimに限らずいろんな言語やツールの逆引き辞典とかがあって、やりたいことからコマンドを検索できます。それはいいのですが、コマンドから引こうと思うとVimなどはコマンド名が非常に短いので検索に苦労します。

 

そこでちょっとアイデアで以下のようなリストを作ってみました。

 

例えばVim アンドゥで検索すればそれはuというコマンドであることはわかりますが、Vim uではなかなか当たらない。そこでVim uコマンドで検索するとこのページがヒットする、というアイデアです。文字のうしろにコマンドという文字列をつけただけです。

 

ciwコマンド、のようなのも入れてみました。

 

Jコマンド: 行連結。join
jコマンド: 一行下へ移動。一行上はkコマンド
hコマンド: 一文字左へ移動。右はlコマンド
uコマンド: アンドゥ。リドゥはC-rコマンド
gfコマンド: カーソル下にあるファイル名のファイルを開く
:qコマンド: カレントウィンドウを閉じる
:qaコマンド: 全部のウィンドウを閉じる
:q!コマンド: 強制終了
:wコマンド: セーブする
:wqセーブして終了する
iコマンド: カーソルの前にテキストを挿入する
Iコマンド: 行の先頭の非空白文字の前にテキストを挿入する
aコマンド: カーソルの後ろにテキストを追加する
Aコマンド: 行末にテキストを追加する
oコマンド: カーソルのある行の下に新しい行を作りテキストを挿入する
Oコマンド: カーソルのある行の上に新しい行を作りテキストを挿入する
giコマンド: 最後に入力がされた場所にテキストを入力
ddコマンド: 行削除
yyコマンド: 行コピー(ヤンク)
gqコマンド: 整形する。80文字で折り返すよう整形とか
gqqコマンド: 行を整形する
diwコマンド: でカーソル下の単語を消す
Cコマンド: 行末まで削除して挿入モード。C$
Dコマンド: 行末まで削除する
Yコマンド: 行をコピーする
pコマンド: テキストをレジスタから貼付ける
Pコマンド: カーソルの前にテキストを貼り付ける
xコマンド: カーソル下の文字を削除
Xコマンド: カーソルの前の文字を削除
sコマンド: カーソル下の文字を削除して挿入を始める。clと同じ
clコマンド: カーソル下の文字を削除して挿入を始める。sと同じ
Sコマンド: 行を削除して挿入を始める。^Cコマンドと同じ
rコマンド: カーソル下の文字を置き換える
Rコマンド: 置換モードに入る
gコマンド: Rの仮想文字バージョン
gRコマンド: Rの仮想文字バージョン
gJコマンド: 行を連結する
:%s///gコマンド: 確認なし置換
:%s///cコマンド: 確認あり置換
C-aコマンド: カーソルの下または後の数にnを加える
C-xコマンド: カーソルの下または後の数からnを減らす
0コマンド: その行の最初の文字に移動
^コマンド: その行の最初の空白以外の文字に移動
$コマンド: その行の最後の文字に移動
g0コマンド: 画面行の最初の文字に移動
g^コマンド: 画面行の最初の文字に移動
g$コマンド: 画面行の最初の文字に移動
gmコマンド: 画面の幅の真ん中に移動
fコマンド: その行でf{char}で{char}に移動。F{char}は逆方向
tコマンド: その行でt{char}で{char}まで移動。T{char}は逆方向
;コマンド: f,t,F,Tを繰り返す。逆方向は,(カンマ)
;nコマンド: f,t,F,Tをn回繰り返す。逆方向は,n
Gコマンド: n行目の最初の非空白文字に移動。nがなければ最後の行
ggコマンド: n行目の最初の非空白文字に移動。nがなければ最初の行
%コマンド: ファイルのnパーセントの位置に移動
wコマンド: 単語単位で前方に移動
Wコマンド: 非空白文字の連続単位で前方に移動
eコマンド: 単語の終わりに移動
Eコマンド: 非空白文字の連続単位で終わりに移動
bコマンド: 単語単位で逆方向に移動
Bコマンド: 非空白文字の連続単位で逆方向に移動
geコマンド: 単語の終わりに逆方向に移動
gEコマンド: 非空白文字の連続単位で終わりに逆方向に移動
C-Oコマンド: ジャンプリストの古いカーソル位置に移動
C-Iコマンド: ジャンプリストの新しいカーソル位置に移動
g;コマンド: 変更リスト中の前の位置に移動
g,コマンド: 変更リスト中の後の位置に移動
%コマンド: 対応する括弧([{}])にジャンプ
i<Enter><Esc>コマンド: 行分割
Hコマンド: 画面の最上行の先頭にカーソルを移動
Mコマンド: 画面の中央の行の先頭にカーソルを移動
Lコマンド: 画面の最下行の先頭にカーソルを移動
dlコマンド: 1文字削除。xと同じ
ddコマンド: 1行削除
/コマンド: 前方検索
?コマンド: 逆方向検索
nコマンド: 検索の繰り返し。逆方向はN
Nコマンド: 検索を逆方向に繰り返し
*コマンド: カーソルの単語で検索
#コマンド: カーソルの単語で逆方向に検索
*コマンド: カーソルに最も近い単語で前方検索
#コマンド: カーソルに最も近い単語で後方検索
g*コマンド: カーソルに最も近い単語で前方検索
g#コマンド: カーソルに最も近い単語で後方検索
C-eコマンド: 下へウィンドウをスクロール
C-yコマンド: 上へウィンドウをスクロール
C-dコマンド: ウィンドウを下に画面の半分スクロールする
C-uコマンド: ウィンドウを上に画面の半分スクロールする
C-fコマンド: ページ前方(下方)にスクロール
C-bコマンド: ページ後方(上方)にスクロール
ztコマンド: 現在のカーソル位置が最上行となるように画面がスクロール
z<Enter>コマンド: 現在のカーソル位置が最上行となるように画面がスクロール
zbコマンド: 現在のカーソルのある行が最下行になるように画面がスクロール
zzコマンド: 現在のカーソルのある行が画面の中央にするようにスクロール
uコマンド: Undo。やりなおし
C-rコマンド: Redo。やりなおしのやりなおし
vコマンド: 文字単位のビジュアルモードを開始する
Vコマンド: 行単位のビジュアルモードを開始する
C-vコマンド: 矩形ビジュアルモードを開始する
gvコマンド: 最後に使用したのと同じ範囲のビジュアルモードを開始する
v_oコマンド: ビジュアルモードで選択されたテキストの端へ移動する
v_Oコマンド: ビジュアルモードで選択されたテキストの端(コーナー)へ移動する
i_C-rコマンド: 挿入モードでレジスタの内容を挿入する
i_<Esc>コマンド: 挿入モードから抜ける
gfコマンド: カーソルの下の名前のファイルを編集する
Kコマンド: カーソル位置のキーワードを調べるためのプログラムを実行
ggコマンド: ページの先頭に移動
Gコマンド: ページの最後に移動
nGコマンド: n行目に移動
C-oコマンド: 検索を始める前の場所に戻る
.コマンド: 直前のコマンドを繰り返す
ddコマンド: カーソルがある行を削除
nddコマンド: n行削除
diwコマンド: カーソル上の単語を削除
di"コマンド: ダブルクォーテーションの内部を削除
ditコマンド: HTMLタグの内部を削除
ciwコマンド: カーソル上の単語を削除して、挿入モード
ci"コマンド: ダブルクォーテーションの内部を削除して、挿入モード
citコマンド: HTMLタグの内部を削除して、挿入モード
xコマンド: 1文字削除
Dコマンド: カーソル位置から行末まで削除
Cコマンド: カーソル位置から行末まで削除して, 挿入モード
yyコマンド: カーソルがある1行をコピー
nyyコマンド: n行コピー
yiwコマンド: カーソル上の単語をコピー
yi"コマンド: ダブルクォーテーションの内部をコピー
yitコマンド: HTMLタグの内部をコピー
:%s/\s*$コマンド: 末尾の空白を削除
:%s/。$コマンド: 末尾の。を削除
:v/./dコマンド: 空白行を削除
:v/\s/dコマンド: 空白行を削除
oコマンド: 現在の行の下に改行し、挿入モード
aコマンド: カーソルの右側に挿入モード
Iコマンド: 行頭に移動し、挿入モード
Aコマンド: 行末に移動し、挿入モード
>>コマンド: インデントを追加
<<コマンド: インデントを削除
Vコマンド: カーソルがある行を選択
yコマンド: 選択した行をコピー
dコマンド: 選択した行を削除
C-uコマンド: 半画面分戻る
C-dコマンド: 半画面分進む
C-bコマンド: 1画面分戻る
C-fコマンド: 1画面分進む
ccコマンド: 1行を削除して、挿入モードに入る
viwコマンド: カーソル上の単語を選択
vi"コマンド: ダブルクォーテーションの内部を選択
vitコマンド: HTMLタグの内部を選択
qaコマンド: レコーディングを開始
qコマンド: レコーディングを終了
C-vコマンド: 矩形選択モード
dコマンド: 矩形選択した範囲を削除
C-v$コマンド: 矩形選択し、長さが異なる行を全選択
C-v$Aコマンド: 長さの異なる複数行の行末に同じ文字列を追加。<Esc>で抜ける
C-v^Iコマンド: 複数行の行頭に同じ文字列を追加。<Esc>で抜ける
xpコマンド: 文字の入れ替え(na -> an)

セブンイレブンでかかっている曲

セブンイレブンのサイトに行けば書いてあるのかもしれないけど、


悲しき雨音 カスケーズ

 

が鳴っていました。

なつかしい。


サンホセへの道 バート・バカラック
オブラディ・オブラダ ビートルズ

 

がかかっていたときもありますね。

 

You've Got a Friend キャロル・キング

 

は自信がないけど。しばらく前にちょっとかかっていた気がする。

 

モンキーズのデイドリーム・ビリーバーは聞き飽きたかもしれない。

 

 

追記:

セブンイレブン よくある質問

店内BGMの曲目を教えてください

というページがありました。

 

 

Ubuntu SDカードエラー

Ubuntuにsdカードを差し込んで、書き込みができなくなりました。

いろいろやっても、


読み込み専用です
write protect is on
read-only
アクセス権がありません

 

とかなるので調べて解決したので、報告です。

 

$ sudo mount -t vfat -o rw,remount,umask=000 /dev/devicename /media/username/mountpoint

 

で読み書きできるようになりました。

 

-t はファイルフォーマットの指定。この場合はvfat。普通のFATです。
-o は以下カンマ区切りのオプションですとの意味。
rwは読み書き。
remountは再マウント。
umaskは権限。000がUnixの777にあたるのかな。
バイスdevicename1を/media/username/mountpoint
にマウントする。

devicename1はdmesg | tailでしらべてsdbとかでるのでそれに1をつけてsdb1とかになる。usernameとmountpointはls -R /mediaで確認する。

 

具体的には

 

$ sudo mount -t vfat -o rw,remount,umask=000 /dev/sdb1 /media/yamadataro/ABC-DEF

 

というような感じになります。/dev以下は打ち間違えないようになるべくtab補完を使って入力するのがいいと思います。

 

そそ、わたしの環境はUbuntu 16.04, SDカードリーダーは100均で買ったもの、SDカード自体は古い128MBとか1GBとかいろいろ試しました。Windowsで既定のFATでフォーマットしてあります。10枚あるうちWindowsでも認識しないのがあったのでそれはSDカードが壊れているものと判断しました。

 

以上

 

 

ボケ防止にGitHub

歳をとるといろいろ物忘れが多くなります。忘れたのも忘れて、自分のメモを捨ててしまったりする。

 

まあそれでもいいのですが、GitHubというかgitを使うとすべての編集が削除も含めて記録されるので、とても安心です。

 

git入門では git init から入っているのが多いけど、わたしのおすすめはGitHubにアカウント作ってそれからgit cloneして始めるのがいいと思う。それからcdして、好きなこと書いて、git add .して、git commit -m "", git pushすれば無事GitHubに反映されます。

 

わたしは有料アカウントにしたのでpublicでないprivateでいろいろ書けるのですが、無料だと全部公開なので注意ですね。

 

そう言えば、お金が払えなくなって無料に移りたいときはどうするのだろうか。privateの内容だけ消えるのだろうか。それともprivateが自動でpublicになってしまうとするとタイヘン。確認しよう。

 

追記

いつでも無料に移れて、privateの内容は見れなくなります。強制的にpublicにはならない。

再度有料にすると、privateも見れるようになる、と書いている人がいるのでそうなのでしょうが、GitHubのヘルプにはそこまでは書いてなかった。でもたぶんそうなのでしょう。安心ですね。

 

 

GitHubでつくるブログ

GitHubでページを公開すると簡単にホームページができますが、ホームページができるということはブログもつくれるはず。

 

ということで調べると何人かGitHubでブログを作って公開している人がいる。

 

それなりに苦労しているみたいなので、もうすこしすると、GitHubでそのまま使えるブログ用のテーマができるかもしれない。

 

それを待った方がいいかもしれません。

 

 

UbuntuにLocalにWordPressをインストール

あちこちのサーバーでClosedにWordPressにメモなどを書いていたのをxmlで吐き出して、自分のパソコンのWordPressに読み込ませよう、サーバーは全部解約しよう、と思い立ちました。

 

環境はUbuntu 16.04です。サーバーではなくて、普通のデスクトップ。

Local WordPressで、検索するといっぱいヒットするのですが、結構トラブって、成功したのでメモを残して起きます。


mysqlapacheが動いていなかったら、taskselを使うとlamp-serverが一度にできる。
sudo apt update
sudo apt install tasksel
sudo tasksel install lamp-server
これでapachemysqlがインストールされて起動しています。マシンを再起動してもサービスは動いている。
ブラウザーlocalhostとすると、apacheの画面が出る。

これは/var/www/html/index.htmlが表示されている。ここにinfo.phpを作って、ブラウザーlocalhost/info.phpとすると表示された。ここにwordpress/*をコピーすると、index.phpwordpressが立ち上がるとかいうしくみ(後述)。

 

まずmysqlを設定する。
mysql -u root -p
mysql> CREATE DATABASE databasename DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
mysql> GRANT ALL ON databasename.* TO 'username'@'localhost' IDENTIFIED BY 'password';
mysql> select Host, User, authentication_string from mysql.user;
mysql> exit;

 

php関係

sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc
sudo systemctl restart apache2
sudo vim /etc/apache2/apache2.conf
<Directory /var/www/html/>
AllowOverride All
</Directory>
sudo a2enmod rewrite
sudo apache2ctl configtest
sudo service apache2 restart

sudo vim /etc/php/7.0/apache2/php.ini
post_max_size = 64M
upload_max_filesize = 64M
max_execution_time = 3000

sudo service apache2 restart

 

wordpress関係
mkdir mywordpress
cd mywordpress
wget http://ja.wordpress.org/latest-ja.zip
unzip latest-ja.zip
mv wordpress/* .
rmdir wordpress
rm *.zip

 

その他権限など。
sudo touch ./.htaccess
sudo chmod 660 ./.htaccess
sudo cp ./wp-config-sample.php wp-config.php
sudo mkdir ./wp-content/upgrade
sudo cp -a . /var/www/html

sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod g+s {} \;
sudo chmod g+w /var/www/html/wp-content
sudo chmod -R g+w /var/www/html/wp-content/themes
sudo chmod -R g+w /var/www/html/wp-content/plugins

sudo vim /var/www/html/wp-config.php
define('DB_NAME', 'db_name');
define('DB_USER', 'wordpressuser');
define('DB_PASSWORD', 'password');

 

sudo mv index.html index.html.old

 

これで無事動きました。

 

注: 

sudo vim /var/www/html/info.php
<?php
phpinfo();
?>
localhost/info.phpを見る。

表音文字としての中国語

木簡によって万葉集以前の日本語表記がだんだん明らかになってきていますが、木簡の和歌(歌木簡)はすべて一字一音の字音表記で書かれているようです。

万葉集の万葉仮名のように訓読みがまざっていない。

漢字を表音文字として使っています。

 

まるで現代の中国語で西洋人の名前を漢字で書くのと同じなので、発音体系がまったく違うので似て非なるものだっただろうと思うものの、この方法であの時代の歌が残ったと考えるとすばらしいことだと思います。

 

表音文字として漢字をつかった例は他にもあって、仏典の翻訳時には

 

サンスクリット表音文字)を読み上げ -> 中国語に音写 -> 中国語に翻訳

 

という手順をとったそうです。この「中国語に音写」の部分が漢字を表音文字としてつかっている部分です。

 

また、元朝秘史というモンゴルの歴史書があってこれが中国語なのですが、ウイグル文字によるモンゴル語から漢字で音写して、中国語の訳をつけたものとして残っているそうです。ウィキペディアに画像があります。

これはその時代13世紀あたりの中国語もわかるので一石二鳥ですね。

 

参考

万葉集から古代を読みとく 上野誠

仏典はどう漢訳されたのか 船山徹