vim と tmuxで色がおかしいんだよ
なんかtmux上でvimを動かしてcolorschemeをjellybeansにした時に背景色が既に何かを書いた部分とそうでないところで変化してしまいおかしくなった。何故かneovimでは発生しない。正直neovimを使っているので問題は無いけど気持ち悪いので解決しておこうと思う。
まず[vim tmux]とかでググると.tmux.confに次を記述しろって出てくる
set -g default-terminal "xterm"
このxtermの部分はscreen-256colorだったりまちまちなので適当に??
でもこれでも解決しない。
調べてたらここに書いてあった。
Fixing Vim's Background Color Erase for 256-color tmux and GNU screen - The Terminal Programmer
なんかいろいろとvimrcに書き加えるのもあれなので
set t_ut=
と書き加えておいたらなんか解決した。(正直これが何を意味してるか知らないからなんで解決したかわかってないけどとりあえず解決ということで)
ubuntuでnpm使ったらちょっと辛い目にあったんだよ
ubuntu15.04でnodejs,npmをインストールした(結構前で何をどうやってインストールしたかは忘れたのでググってください)
そして
sudo npm install madoko -g
とかして、madokoをインストールしても、実際にmadokoを動かすと
/usr/bin/env: node: No such file or directory
というエラーが出てくる。
どうやらこれはubuntuだと名前がnodejsとnodeで違っていてパスが通っていないらしい(よくわかってないから説明がぐだぐだ)
これを解決する方法としてシンボリックリンクを貼って/usr/bin/nodejsと/usr/bin/nodeを同じにしちゃえばいいじゃんというものがあった。
つまり
sudo rm /usr/bin/node
sudo ln -s /usr/bin/nodejs /usr/bin/node
とすれば良い。
これでmadokoも動いた。やったね。
ちなみに他の解決方法でなんか
npmの新しいのをインストールするとかnodejs-legacyをインストールするとかあったけどどれもダメだった。最終的に動いたのが上記の方法だった。
でもなんか結構人によって解決方法が違ったらしい。
GDBを使ったんだよ
GDBを使ってデバッグすると便利らしいけど意外と使う機会がなかった。
でもちょっと使う機会が出来たから今後使う時に困らないように使い方をメモっとく。
まずコンパイル時にファイルにデバッグ情報を追加して最適化を向こうにする。つまりコンパイルするときにコンパイルオプション-g -O0を付けておく。
これを付けてコンパイルされたプログラムを走らせる。
gdb a.out
ブレークポイントの設定
ブレークポイントを設定するのにはbreakコマンドを使えばよい。main関数に入るまで走らせるなら
(gdb)break main
とすればよく、行番号で指定したいなら
(gdb)break 行番号
とすればよい。
またbreakはbと省略することもできる。
実行
実行するには
(gbd) run
とすればプログラムが開始される。
関数の中を追いかけるときは
(gdb) step
関数の中を追いかけない時は
(gdb) next
とすればプログラムが1行ずつ実行されていく
次のブレークポイントまで一気に動かすのには
(gdb) continue
とすればよい。
これらはどれもn,s,cと省略することができる。
John the Ripperを使ったんだよ
ksnctfのなんかの問題でjohn the ripperを使った。
せっかくだからjohn the ripperの使い方をメモっとく
辞書ファイルとパスワードファイルがあるときの方法をメモっとく。(他の方法は必要になった時に追加するめう)
辞書ファイルがdict.txt
パスワードファイルがpass.txt
の時に
john --wordlist=dict.txt pass.txt
とすると
パスワード (user)
みたいな形式で出てきた(・∀・)「
出てくるのにすこし時間がかかった。
数秒で出るわけではないから少し待つ必要がある。
vimで使ってる/使いそうなコマンド一覧なんだよっ
基本的には使ってるコマンド一覧。
あとはマッピングすることで使えそうなコマンドとか普通に知らなかったコマンドとかも随時追加していく予定。
ただこの手の記事はあふれるほどあるのであえてここを見る必要は僕以外は無いぞ!
移動系
コマンド | 説明 |
---|---|
h,j,k,l | それぞれ左,下,上,右に移動する |
gj,gk | それぞれ表示されている行単位での下上の移動(set wrapされて1つの行が2行以上で表示されている時に便利 |
$ | 現在の行の一番後ろに移動 |
^ | 現在の行で空白以外で一番前に移動 |
0 | 現在の行の先頭に移動 |
gg | 先頭の行に移動 |
G | 一番後ろの行に移動 |
移動+モード変更
コマンド | 説明 |
---|---|
s | 一文字消してインサートモードに入る(NormalModeで)(xiと同じ) |
S | 一行消してインサートモードに入る(NormalModeで) |
結合系
コマンド | 説明 |
---|---|
J | 下の行を現在の行の後ろにスペースを一つ開けて結合 |
折り畳み機能
コマンド | 説明 |
---|---|
za | 折り畳みの開閉 |
zm | 全ての折り畳みマークを閉じる |
zf | ヴィジュアルモードで選択した部分に折り畳みマークをつける |
折り畳みマークは3重括弧で
{{{
ここが折りたたまれる
}}}
となってる。
折り畳み機能を使う際は
set foldmethod=marker
としておくのが良さそう。
画面分割
コマンド | 説明 |
---|---|
:sp(split) | 水平分割 |
:vs(vsplit) | 垂直分割 |
<C-w>h,j,k,l | 分割したウィンドウ間の移動 |
<C-w>H,J,K,L | 分割したウィンドウの場所を移動 |
タブ
コマンド | 説明 |
---|---|
:tabnew | 新しくタブを作る |
gt | 次のタブ |
gT | 前のタブ |
なんか偶然見つけた
コマンド | 説明 |
---|---|
K | カーソル下のmanを表示 |
VimScript -- バッファを操作する関数 --
VimScriptを書こうと思って
:commandname
としたら行の適当な位置に何らかの文字列を出力したいと思った。
どうやらappendとかsetlineとか使えばいいらしい。
挿入系の関数
append
append(行番号,文字列)
で[行番号]行目の次の行に[文字列]が挿入される。つまり[行番号+1]行目に[文字列]が挿入される。
もともと[行番号+1]行目以降にあったテキストは後ろにずれる。
現在の行の次の行を指定するためには
append('.',文字列)
とすればよい。
setline
setline(行番号,文字列)
[行番号]の位置に[文字列]を挿入する。もともと[行番号]の位置にあった文字列は上書きされる。
現在の行を指定するためには
setline('.',文字列)
とすればよい。
取得系の関数
getline
getline(行番号)
で[行番号]の文字列を取得できる。
現在の行を指定するためには
getline('.')
とすればよい