タグ

ブックマーク / tyru.hatenablog.com (22)

  • Ctrl-[ が Esc になる理由 - Humanity

    理由 SHIFT キーはキーコードを -0x20、CTRL キーはキーコードを -0x40 する機能 全文 vim-jp.slack.com の #random から。 heavenshell [10:08 AM] TouchBar MBP にしたら強制的に C-[ になるので、オススメです!ようやく矯正できた。 mattn [10:09 AM] 人間の方が最適化されている yoshitia [10:12 AM] Escが物理的にない状況用にデフォルトでCtrl-[ 用意してるのすごい mattn [10:14 AM] いや、用意した訳ではないです。 SHIFT キーはキーコードを -0x20、CTRL キーはキーコードを -0x40 する機能なのです。 なので `[` つまり 0x5b は 0x1b になる。 0x1b = ESC 同様に CTRL-H は H が 0x48 なので 0x

    Ctrl-[ が Esc になる理由 - Humanity
    labunix
    labunix 2018/10/05
  • Vim で端末ウィンドウを複製する - Humanity

    Vim で端末ウィンドウを使ってるとスクロールされた出力を見たくなる時があると思います。 ただシェルでコマンド実行中なので、 <C-w>N すると出力も止まってしまう。なるべくなら出力を止めたくないと思います(たぶん)。 そういう時は以下を vimrc に貼り付ければ <C-w>y で端末ウィンドウの複製バッファができます。色とかもそのまま。 追記 (9/25) すみません、以下のコードだとやっぱりスクロールされた出力は見れませんでした…直すのでお待ちください…というか誰か直してください… tnoremap <C-w>y <C-w>:<C-u>call <SID>dup_term_buf()<CR> function! s:dup_term_buf() abort let file = tempname() call term_dumpwrite('', file) call term_d

    Vim で端末ウィンドウを複製する - Humanity
    labunix
    labunix 2018/09/24
  • open-browser.vim で Windows Subsystem for Linux 上の Vim から URL 開けるようになった - Humanity

    github.com これで WSL 上であろうとなかろうと意識せず URL を開けるはずです。 最近は WSL の Vim ばっかり使ってるので個人的にうれしい機能追加です(追加したの自分だけど)。 WSL は Windows の世界と分断されてると思い込んでたのですが、 /mnt で Windows のファイルシステムを触れるのは知ってたものの、 Windows の実行ファイル(PE フォーマットの実行ファイル)も起動できるのは知りませんでした。 bash から /mnt/c/Windows/System32/notepad.exe とか開けるんですね。 というわけで直接 Windows で動いてる Vim *1 でも叩いてる rundll32.exe を直接叩いて URL を渡すだけでした。あっけない。 *1:この表現は誤解を招くような… WSL も同じサブシステム上で動いてるし。な

    open-browser.vim で Windows Subsystem for Linux 上の Vim から URL 開けるようになった - Humanity
    labunix
    labunix 2017/09/06
  • Vim の :terminal がもたらすもの - Humanity

    追記 記事を書いた後いろいろ状況が変わって :terminal コマンドが使える Vim が配布されるようになったので、 とりあえず現時点(2017/09/15)での状況を書きました。 tyru.hatenablog.com 序文 今絶賛開発中の Vim の :terminal コマンドについて書こうと思う。 :terminal コマンドを実行するとシェルが開き、Vim 上で操作することができる、というもの。 つまり実質的に Vim は端末ソフトウェアとなった。 その上 Vim script で端末上の様々な内容にアクセスしたり変更することができる。 expect コマンド、parallel-ssh のようなツールを Vim script で自作することも可能となった。 しかし、すでにそれらのコマンドがある以上 Vim プラグインで実現する必要性は薄いだろう。 Vim の :termin

    Vim の :terminal がもたらすもの - Humanity
    labunix
    labunix 2017/08/16
  • 最近知った top コマンド tips - Humanity

    今更すぎるけど便利だったので。 top で起動した後に M でメモリ使用量が多い順にソートできる。 P で CPU 使用率。 そしてさらにデフォルトではプログラムの引数は表示されていないが、c と打つと表示できる。 例えば KVM 上で動かしている VM のプロセスをメモリ使用順に並べたい場合、 top で起動した後に M でソートしただけだと VM のプロセスは全て qemu-kvm としか表示されないが、 c を打つと引数も表示されるので何の VM か分かったりする。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 25165 qemu 20 0 3728792 2.960g 7532 S 4.3 19.2 208:59.85 qemu-kvm 25569 qemu 20 0 2679196 1.929g 4488 S 2.6

    最近知った top コマンド tips - Humanity
    labunix
    labunix 2017/08/14
  • DebianインストーラとDebianでDHCPクライアントの挙動が違う - Humanity

    結論から言うと DebianインストーラのDHCPクライアントはRFC2131準拠 DebianのDHCPクライアント(dhclient)はRFC2131非準拠 という事らしい。 あらすじ(?) 前エントリで WindowsLinuxが混在したネットワークでRTX810のDHCPサーバ機能を使う際の注意点 という記事を書いたけど、あれからDebianインストーラを起動する事があり、その際にDHCPでIP取得できなくてあれー?となったけど、もしかしてと思って「dhcp scope bind 1 192.168.xx.xx xx:xx:xx:xx:xx:xx」を「dhcp scope bind 1 192.168.xx.xx ethernet xx:xx:xx:xx:xx:xx」に変えたらいけた。 のでDebianインストーラのDHCPクライアントはRFC2131準拠という結論になった。 そ

    DebianインストーラとDebianでDHCPクライアントの挙動が違う - Humanity
    labunix
    labunix 2014/02/18
  • Vimを常駐化してファイルの読み込みを爆速化する - Humanity

    ばよえ〜ん(訳:Vim Advent Calendar 2012への16回目の投稿です) この記事はVim Advent Calendar 2012の150日目の埋め合わせ記事になります。 149日目は@manga_osyoさんでneobundle.vimgithubC++ ライブラリを管理するでした。 履歴 FAQ Q3のコードを修正。(guioptionsを手動でいじる場合、FocusGainedイベント時に常にguioptionsがリセットされてしまう) id:thincaさんにコメント欄にてsingleton.vimをそっと差し出されたので追記。 序文 Vimはテキストエディタです。 ですから基的には自己主張せず、他のエディタのようにテキストを表示したり編集したり出来てほしいですよね。 例えば、GUIのエクスプローラにあるファイルを開く時、いちいちVimから:edit

    Vimを常駐化してファイルの読み込みを爆速化する - Humanity
    labunix
    labunix 2013/05/01
  • vim-jpがつないだVimプラグイン開発者とVimパッチ職人、もしくはなぜ最近Vimコミュニティが活発になったのか - Humanity

    ばよえ〜ん(訳:Vim Advent Calendar 2012への11回目の投稿です) この記事はVim Advent Calendar 2012の115日目の記事になります。 114日目は@rbtnnさんのsetコマンドでエスケープすべき文字でした。 vim-jp以前ってmattnさん以外、Vimパッチ職人*1の人たちはあんまりLingrに寄り付かなかったなー。という事をふと思い出したのでなんとなくちょっと前のことについて書いてみる。 というより、何時の間にか書きあがってた。 取りとめないし、主観が多分に混じってると思う。 ここでいうVimパッチ職人、Vimプラグイン開発者はだいたいこんな感じ... すごい大雑把な分け方なのでちょっとあれだけど... Vimパッチ職人 mattnさん、KoRoNさん、中平さん、h-eastさん、... Vimプラグイン開発者 thincaさん、Shou

    vim-jpがつないだVimプラグイン開発者とVimパッチ職人、もしくはなぜ最近Vimコミュニティが活発になったのか - Humanity
    labunix
    labunix 2013/03/26
  • すぐにウガンダに送金できるVimの拡張作った。 - Humanity

    生きていればつらいことがある。 しかし、つらいからと言って簡単に投げ出す事は出来ないということも多い。 みなさんもつらまってる時、よくウガンダに送金すると思う。 当然のごとく僕もそうである。 最近つらい事がよくある。 そんな時のために、ウガンダに素早く送金する必要があった。 なので、Vimを起動すればすぐ送金できるVimの拡張を作った。 「だめだ。もうやってらねー」って時は、Vimを起動すればすぐ送金ページに飛ぶ。最高。送金したい。 この拡張にはopen-browser.vimが必要です。 tyru/pay-for-uganda.vim · GitHub 合わせて読みたい すぐに宮崎あおいを見れるGoogle Chromeの拡張作った。 - @soh335 memo http://blog.hisaichi5518.com/entry/2013/02/01/003820 すぐにハッブル宇宙

    すぐにウガンダに送金できるVimの拡張作った。 - Humanity
    labunix
    labunix 2013/02/13
  • Debian squeezeでBonding (ARP監視編) - Humanity

    手順書を作成するとブログにも上げやすくなる。 むしろ手順書を作成しないとブログにも上げないようにした方がいいのかも。 手順も洗練されてないし、見落としがあるかもしれないし。当たり前かも。 メモ的にエントリ起こすこともあるけどそういう記事を見返したことがあるのかは疑問。(おぼえてない) 手順 手順は以下の通りです。*1 パッケージ ifenslave-2.6 をインストール 設定ファイルを編集する /etc/modprobe.d/bonding.conf /etc/network/interfaces bridgeと組み合わせた例 bridgeと組み合わせない例 補足 再起動する 確認する パッケージ ifenslave-2.6 をインストール Bondingの設定をするには ifenslave-2.6 というパッケージが必要なのでインストールする。 RedHat系だと iputils とか

    Debian squeezeでBonding (ARP監視編) - Humanity
    labunix
    labunix 2012/09/29
  • /var/*をtmpfsのファイルシステムに持っていくinitスクリプト - Humanity

    元は上記のArch Linuxのwikiにあったネタなのですが、そんなinitスクリプトを書きました。 /var/*は頻繁に更新されるために、余計なI/O負荷を避けるのに便利とか、便利じゃないとか。*1 実はこれ、微妙に前の記事とも関連があります。 というのも、元々なぜこんなものを書いたかというと、MicroServerにDebianをインストールしたUSBメモリを差してNFSサーバを公開してるのですが、NFSへの書き込みがすごく遅かった。 多分USBメモリだから、USBメモリ上へのファイルシステムにアクセスするたびめっちゃ重いんだろうなーと思ってて、ずっと/var/*をtmpfsにしたいと思っていたところ、冒頭のページが見つかったので移植。 インストールして運用して、さぁこれで速くなるかなー?と思ってたけど、一向に速くならない。 しょんぼりして「NFS 遅い」とかでググってたら前の記事で

    /var/*をtmpfsのファイルシステムに持っていくinitスクリプト - Humanity
    labunix
    labunix 2012/08/24
  • lxc-debian直した - Humanity

    lxc-debian*1っての使うとDebianをLXC上に楽々インストールできるらしいけどそのスクリプトが微妙だったので直した。 というかそもそも「lxc-debianにcreateって引数渡す」みたいに解説してるとこあるけど、 Debianについてるlxc-debianはなんか違う... Debianだけ違う? 使い方 $ sudo ./lxc-debian -n testで /usr/lib/lxc/test に作られます。 このフォルダに入ってるとlxc-start -n testで起動できるっぽい。 直した箇所 このページが超くわしい。 ここに書いてある問題はだいたい直した。 sudo ./lxc-debian -n test で /usr/lib/lxc/test に作る、みたいに /usr/lib/lxc/ 以下に作ってくれるようにした localeまわりがちゃんと設定できて

    lxc-debian直した - Humanity
    labunix
    labunix 2012/07/18
  • ホスト名でWake-on-LANできるwolコマンド作った - Humanity

    2012/7/22 05:41 追記 なぜこんな勘違いしてたのかわからんけど、wolコマンドが使ってるwakeonlanコマンドにも普通にホスト名渡せるので、wakeonlanコマンドを使えばよい。 この記事はボツ。 元記事 コマンドじゃなくてシェル関数だけど。 これを.bashrcとかに書いて、/etc/ethersに de:ad:be:ef:ho:ge fugaとかしとくと「wol fuga」でfugaを叩き起こせる。 wakeonlanコマンドが必要です。 Debianならapt-get install wakeonlanで入るはず。 /etc/ethersの書式は見て分かると思うけど/etc/hostsと同じような書式で Ethernet-address IP-numberのようになっている。(IP-numberと書いてあるけどホスト名も書ける) 詳しくはman ethers(5)

    ホスト名でWake-on-LANできるwolコマンド作った - Humanity
    labunix
    labunix 2012/05/06
    同じLAN内限定かな?。。。
  • RHELではraid-checkというスクリプトがあるけどDebianではcheckarrayがある - Humanity

    まず タイトルだけ読んでもなんのことかわからないと思うので、まずこの記事を読んだりして調べたことのメモです。 RAIDレベルの話: 1+0と6はどっちが安全か? - たごもりすメモ ようするに、HDDが壊れた時にRAIDコントローラに通知する機能はHDDにはない。 つまり、RAIDでHDDがfailしたと判定されるのはI/Oの結果、読み出しが失敗した場合。 なので、HDD中に実は読み出し不可能なブロックがあるが、長い間参照されていないために潜在的なfail状態という場合がありうる。 1台目が壊れてHDDを交換してリビルド中に古いファイルを参照した瞬間、2台目も実はfailしていた、という場合がある。 これの対策としては全ブロックを走査する定期的なベリファイで予防が可能、とのこと。 長くなるので自分の言葉で書き直してみたけど説明分かりにくかったら上の記事見てください。 あと元記事に書いてある

    RHELではraid-checkというスクリプトがあるけどDebianではcheckarrayがある - Humanity
    labunix
    labunix 2012/05/06
  • pam-auth-updateでPAMの設定を変える - Humanity

    ふとPAMの設定ファイルを眺めてたらpam-auth-update(8)というスクリプトがあるらしいことを知った。 manによるとauth-client-configと同じく 自動的にPAMの設定を書き換えてくれるすごいやつで、 /usr/share/pam-configs/以下に設定ファイルがある。 なるほどーじゃあ/usr/share/pam-configs/ldap作ればいいのかー よーしパパ作っちゃうぞーと思いファイルを開いてみると... $ vi /usr/share/pam-configs/ldap Name: LDAP Authentication Default: yes Priority: 128 Auth-Type: Primary Auth-Initial: [success=end default=ignore] pam_ldap.so Auth: [success

    pam-auth-updateでPAMの設定を変える - Humanity
    labunix
    labunix 2012/03/18
  • LDAPでユーザの一元管理 (2回目) - Humanity

    DebianでLDAPサーバ - Humanity この記事が見にくすぎるのでもう一回書くことにする。 当時のエラー状況とかも書いてるので相当見にくいのと文章が酷い。 手順書がほしいならちゃんとした手順書書けって話ですが... 以下、項目ごとにサーバでの作業だったら「(サーバ)」、クライアントだったら「(クライアント)」と書いてます。 (サーバ) mv /etc/ldap/slapd.d{,.bak} このディレクトリがあるとslapd.confが無視られるので。 slapd.dかslapd.confどっちかで書けってことらしい。 (サーバ) /etc/ldap/slapd.conf 以下の内容を/etc/ldap/slapd.confに保存。 modulepath /usr/lib/ldap moduleload back_bdb.la include /etc/ldap/schema/

    LDAPでユーザの一元管理 (2回目) - Humanity
    labunix
    labunix 2012/03/15
  • Debianで更新があったらメールされたい - Humanity

    されたい。 のでcron-aptを使う。 sudo apt-get install cron-aptして、設定ファイル(/etc/cron-apt/config)を書き換える。 アップグレードする設定にもできるけどメール通知のみにする。 --- /etc/cron-apt/config.bak 2012-03-13 01:02:33.838567688 +0900 +++ /etc/cron-apt/config 2012-03-13 01:06:56.342567655 +0900 @@ -11,7 +11,7 @@ # OBSERVE that this tool is indended for apt-get and tools like aptitude do not # have full support for noninteractive upgrades. You may

    Debianで更新があったらメールされたい - Humanity
    labunix
    labunix 2012/03/13
  • Debianで新しいstableがリリースされても自動的に追従する - Humanity

    Tumblrで引用してたんだけど、一応埋もれて忘れないためにブログにも書く。 あわしろいくや:stableを入れてます! とか言いながらDebian 4.0ぐらいでアップデートされてない、というパターンもありますな。 やまね:/etc/apt/sources.listに「etch」って書いちゃってそのままなんだろうなぁ。 ミズノ:「stable」って書いておけば、新しいstableが出たタイミングでアップグレードかかりますからね。 ASCII.jp:~師範、Debianにも触ってみたいです!~ (4/5)|行っとけ! Ubuntu道場! こんな感じでいいのかな? $ cat /etc/apt/sources.list deb ftp://ftp2.jp.debian.org/debian/ stable main #contrib non-free deb-src ftp://ftp2.j

    Debianで新しいstableがリリースされても自動的に追従する - Humanity
    labunix
    labunix 2012/03/11
  • dnsmasqでDHCP・DNSサーバを立てて移行した手順まとめ - Humanity

    きっかけ DHCPオプションが何気にいろいろ管理できる*1ことを最近知ったのでDHCPサーバでっち上げてみたかった MACアドレス、IPアドレスホスト名をまとめて1設定ファイルに書けるといいなー それdnsmasqでできるよ dnsmasqのよくある使い方としては/etc/hostsをそのまま読み込んでくれるので簡単にホストに名前をつけられるとかそういうのだと思う(多分)けど、自分は上にあるようにまとめて書きたいって要求とDHCP機能も使いたいって要求があったので/etc/dnsmasq.confにMACアドレス、IPアドレスホスト名をまとめて書くことにする。こうすることでMACアドレスとIPアドレスからDHCPでIP割り振れるしDNSホスト名つけられるし最強感がある 近々変える予定のルータにDHCPサーバ機能ついてるのか怪しい(調べてない) ルータにはルーティングのみ任せるようにし

    dnsmasqでDHCP・DNSサーバを立てて移行した手順まとめ - Humanity
    labunix
    labunix 2012/02/27
  • Vimのニッチな正規表現で遊ぼう - Humanity

    さあみなさんVim Advent Calendarも14日目ということで佳境にさしかかってきましたね! とか他のAdvent Calendarに参加してたなら言ってたかもしれないですが Vim Advent Calendarの場合1月5日ぐらいまで登録されてる状態とかどういうことですか... まぁ案の定Advent Calendar締切ギリギリになって急いで記事書いてますこんばんわ。*1 寝ずに記事を書いてるので勢いがついて変なこと口走ってないか心配ですが、 乗るしかない、このビッグウェーブに!ということで終始勢いだけですがそれなりに有用なことも含めたつもりです。たぶん。 いろいろネタがあって迷いましたが、Vimの正規表現について 他の正規表現エンジンにはない(と思われる)ニッチな機能を紹介していきたいと思います。 ちなみにVimの正規表現エンジンをマルチバイト文字に対応させたのはKoRo

    Vimのニッチな正規表現で遊ぼう - Humanity
    labunix
    labunix 2011/12/14