Showing posts with label memo. Show all posts
Showing posts with label memo. Show all posts

Monday, August 7, 2017

Memo of editor vim 学習メモ

vimviをもとに開発されたフェイルエディタですが、viよりはるかにパワフルでもあります。

1.vimで複数のファイルからキーワードを検索する
1.1 基本的な使い方
:vimgrep pattern files
例えば、
:vimgrep key_word src/**/*
はsrcディレクトリの下にあるすべてのファイルから、key_wordの個所を検索する
:args `find . -type f`
:vimgrep /key_word1/ ##
:vimgrep /key_word2/ ##
:vimgrep /key_word3/ ##
は/key_word1/、/key_word2/、/key_word3/とそれぞれのキーワードを同じファイルタイプについて検索する。
:vimgrep /Ctrl_C// src/**/*
はひとつ前の検索対象キーワードでsrcの下にすべてのファイルを検索する。
:vimgrep /keyword/ *|cw
は現在開いているファイルの関数一覧から検索する。あるいは%を使う。

最初にマッチした場所へ移動したくない場合
:vimgrep /keyword/j *.txt
同様に、g オプションをつけると、すべて、マッチします。(デフォルトでは、それぞれの行に対して一度しかマッチしません)

大文字小文字を区別しないには、 \c を指定します。
:vimgrep /foo\c/ *
複数キーワードを検索するときに、
:vimgrep /\(keyword1\|keyword2\)/ *.c
ヘルプのgrepには専用のコマンドが用意されています。
:helpg[rep] keyword

"いつもcwコマンドを使用する場合は以下のように書けば省略できる。
au QuickfixCmdPost grep cw
au QuickfixCmdPost vimgrep c
lvimgrepもほぼ同じ機能のコマンドであり、その結果を見るには、lopenlwです。

他の検索コマンド
 agyagrepjvgrep、GNU grep、 fgrep、 egrep、 agrep等は利用できます。
 「set grepprg=yagrep\ -nH」という設定すればいいです。



1.2 検索結果の閲覧
以下のコマンドで検索結果の一覧を閲覧できる
:copen
あるいは、 :cp(cprev)、:cn(cnext) で前後の結果へジャンプできます。cwはcopenと同じコマンドです。


2.外部のプログラムやコマンドを実行
 「!」を付けて外部のプログラムやコマンドを実行できる。たとえば、
:!ls
3.ウィンドウを分割する
:split
でウィンドウを水平に分割する。簡略コマンドはss。垂直に分割するにはvsplit(簡略コマンドはsv)
Ctrl+w Ctrl+w
でアクティブウィンドウを切り替える。上下左右はそれぞれ、Ctrl+Wとk、j、h、lの組み合わせです。

ウインドウの幅を増やすには、Ctrl+w>、減らすには<を使います。
ウインドウの高さを増やすには、Ctrl+w+、減らすには-を使います。
ウインドウの大きさを揃えるには、Ctrl+w=を使います。
ウインドウを閉じるには、Ctrl+wcを使います。

4.関数名から関数の本体に飛ぶ方法
 変数なら、その変数の宣言箇所に飛びます。
 ctagsを使って、tagsファイルを作成し、vimでカーソルを関数名に持っていき、Ctrl+]で、対応関数の定義箇所に飛んで行けます。
 ctagsは"yum install ctags"などでインストールする必要あります。
 tagsファイルの作成は、バージョン管理システムのルート(gitならば、そのbranchのルート)の下でvimを立ち上げて、:TagsGenerate!を実行すればよいです。
 "ctags nout found"と言われるときに、~/.vimrcに"set tags=../.git/tags"のように、tagsのフォルダ位置を指定すればよいです。
  ctagsのvim内のコマンドは以下の通りです。

コマンド内容
ctrl-]関数・メンバの定義へ移動
ctrl-tまたは:popジャンプ前のファイルに戻る
gを押した後、Ctrl-]複数関数の定義がある場合、どれに行くか選択できる
ctrl-wを押した後、Ctrl-]横に分割してジャンプする
:tsまたは:tselectタグの分岐に戻って別に行ける
:tagsタグの履歴を調べる
:taまたはtagctrl-tの逆。これはショートカットがない。

5.tagbar関数や変数の定義参照をさらに楽にする
 tagbarはctagsに依存するvimのプラグインで、オフィシャルHPからダウンロードできます(zip)。
 プラグインをインストールしたら、~/.vimrcに以下の設定を追加すればよいです。
nmap <F8> :TagbarToggle<CR>
6.シェルコマンドを実行するには
 vimshellというプラグインを使います。
 但し、vimprocに依存するので、それをインストールする必要があります。
 インストールが済んだら、以下のコマンドで、vimのウインドウ内でシェルコマンドを実行できます。
:VimShell
7.複数のキー操作を楽にするには
 submodeというプラグインを使えば、ユーザが自由にサブモードを定義できます。

8.コメントなどの表示色変更指定するには
  例えばコメントを緑色で表示させるには、~/.vimrcに以下のように指定すればよい。
    hi Comment ctermfg=2
 あるいは、
    hi Comment ctermfg=gray
 使える色の名前は、:help hiで調べられます。

9.プラグインを管理するにはNeoBundle.vimを導入
  ~/.vimrcに以下のものを追加して、vimを立ち上げて、":NeoBundleInstall"をじっこうすれば、NeoBundle.vimを簡単に導入できます。
" Note: Skip initialization for vim-tiny or vim-small.
if 0 | endif

filetype off

if has('vim_starting')
  if &compatible
    set nocompatible               " Be iMproved
  endif

  set runtimepath+=~/.vim/bundle/neobundle.vim
endif

call neobundle#begin(expand('~/.vim/bundle/'))

" originalrepos on github
NeoBundle 'Shougo/neobundle.vim'
NeoBundle 'Shougo/vimproc', {
  \ 'build' : {
    \ 'windows' : 'make -f make_mingw32.mak',
    \ 'cygwin' : 'make -f make_cygwin.mak',
    \ 'mac' : 'make -f make_mac.mak',
    \ 'unix' : 'make -f make_unix.mak',
  \ },
  \ }
NeoBundle 'VimClojure'
NeoBundle 'Shougo/vimshell'
NeoBundle 'Shougo/unite.vim'
NeoBundle 'Shougo/neocomplcache'
NeoBundle 'Shougo/neosnippet'
NeoBundle 'jpalardy/vim-slime'
NeoBundle 'scrooloose/syntastic'
NeoBundle 'Shougo/vimfiler.vim'
NeoBundle 'itchyny/lightline.vim'
NeoBundle 't9md/vim-textmanip'

NeoBundle 'Shougo/unite.vim'
NeoBundle 'ujihisa/unite-colorscheme'
NeoBundle 'tomasr/molokai'
""NeoBundle 'https://bitbucket.org/kovisoft/slimv'

call neobundle#end()

filetype plugin indent on     " required!
filetype indent on
syntax on

NeoBundleCheck
10.Gitとの連携
 fugitiveはその一つです。Gdiffで二つの画面でファイルを見比べられたり、Greadですべての変更を元に戻せたりします。
  Glogでは過去のcommit履歴を簡単に見ることができ、各バージョンのファイル全体を見ることができる
 まず、~/.vimrcに以下の内容を追加します。
NeoBundle 'tpope/vim-fugitive'
次に、vimを立ち上げて、以下のコマンドを実行します。
:NeoBundleInstall
11.完全一致のキーワード検索
基本に戻りますが、hodgeというキーワードと完全一致するものを検索したい場合:
       /\<hodge\>
で、"hodge.abc"や、” (hodge) "等を見つけることはできます。"config_abc"のようなものは対象外になります。

12.大文字小文字を区別しないで検索する (vi/vim共通)
      /hodge\c


参考リンク
[1] Vim pluginへの入門[NeoBundle.vim]
[2] vim-fugitiveがやっぱり便利
[3] Quickfixを知ってからfugitiveを使うと捗る
[4] 普段使いエディタをVimにする
[5]Vimで改行時の自動コメントアウトを無効化
[6] vim正規表現リファレンス

Tuesday, July 26, 2016

The Memo of How to Relief Insomnia 不眠症対策メモ

眠れないときでも3分以内に爆睡できちゃう7つの極秘テクとは?では以下の方法を薦めています。
  ①羊ではなくフィボナッチ数列を数えよう
  ②絶対に眠れる音楽「バイノーラルビート」
  ③自己催眠
  ④巷で話題の「4-7-8呼吸法」で即寝
  ⑤「ゆりかご運動」
  ⑥アレを出す
  ⑦頭の中で「あー」とつぶやく

同jooyでは、「眠れないなら原因を断て!眠れない7つの理由!」を以下にあげています。
  ①生活リズムの乱れ
  ②寝る直前までの電子機器利用
  ③体の冷え
  ④カフェイン・アルコールの摂り過ぎ
  ⑤満足した1日が送れていない
  ⑥運動不足
  ⑦ストレス

それでも寝れない!そんなあなたに最終手段を伝授いたしますということで、

  1 ホットミルクかココアを飲む

  2 眠れるツボを押して爆睡しよう

  3 寝間着の見直しで快適な睡眠を

  4 熟睡にいざなうお腹湯たんぽ

  5 ヨガ・ストレッチで睡眠モードに切り替える

  6 ぴったり枕で今日から熟睡

  7 悩みは「デスノート」ならぬ「悩みノート」に書き出してしまえ

  8 寝れないときは2chで笑ってストレス解消

  9 それでもだめなら安全安心の「睡眠サプリ」で決まり!

という方法も進めています。さすがに最終手段だから、どれもこれも勉強や(金と時間の)投資と努力が必要です。


すこし重複しているが、「眠れない夜をなくそう!「不眠症」の8つの対策」」では、
  1 就寝・起床時間を一定にする
  2 睡眠時間にこだわらない
  3 太陽の光を浴びる
  4 適度な運動をする
  5 自分流のストレス解消法を持つ
  6 寝る前にリラックスタイムを
  7 寝酒はダメ
  8 快適な寝室づくりを

同じichamachiの「快眠のすゝめ。眠れない「不眠症」の6つの原因とは!?」では、不眠症の6つの原因を以下のようにまとめています。

1 ストレス>
2 からだの病気>
   頭痛・関節痛・腰痛などの痛み
   心臓病・高血圧・狭心症・心筋梗塞など胸の苦しさ
   呼吸器疾患(気管支炎・肺炎)・喘息などによる咳と呼吸困難
   腎臓病・前立腺肥大・膀胱炎・過活動膀胱などによる頻尿
   認知症・脳血管疾患・脳腫瘍など
   感染症による発熱
   アレルギー疾患などのかゆみ
   胃・十二指腸潰瘍・逆流性食道炎などの消化器疾患による腹痛・下痢・嘔吐など
   肝機能・糖尿病・甲状腺など内分泌・代謝疾患
   睡眠時無呼吸症候群
   ムズムズ脚症候群(レストレスレッグス症候群)など、睡眠に伴う感覚の異常
3 こころの病気
 うつ病
 不安障害
 統合失調症
4 薬や刺激物
 嗜好品(お酒・コーヒーやお茶・タバコ)
 薬
   高脂血症治療薬
   食欲抑制剤
   ステロイド
   降圧薬
   抗潰瘍薬 
   抗うつ薬
   抗パーキンソン病薬
   インターフェロン(抗ウイルス薬)
   気管支拡張薬
   抗結核薬
   また、抗ヒスタミン薬は、日中の眠気が出ることもあります。
5 生活リズムの乱れ
  飛行機
6 環境
  騒音




Thursday, October 1, 2015

Memo of gnuplot 学習メモ

 Wikipediaによると、
gnuplot(ニュープロット しばしばグニュープロットとも)は、2次元もしくは3次元のグラフを作成するためのコマンドラインアプリケーションソフトウェアである。インターネットにおいて無料で配布されているフリーウェアであり、1986年に最初のバージョンが開発された。現在では、Linux、UNIX、Windows、Mac OS Xなどの多くのオペレーティングシステム (OS) に対応したバージョンが開発されている。
個人的に特に気に入っているのは、3次元のデータを気軽に描画できることです。

 たとえば、a.txtというカンマ区切りの3D点データファイルがあるとしたら、まずgnuplotコマンドを実行して、以下の通りさらにsplotコマンドを実行ればよいです。
        gnuplot>splot `a.txt`

 gnuplotはまだインストールされていない場合、以下のコマンドでインストールすればよいです。
        sudo yum install gnuplot

splot `a.txt`コマンドで表示した3次元点データ集合

Monday, March 30, 2015

Memo of chord progression コード進行メモ

カノン進行
 基本形(ハ長調)
  | C | G | Am | Em | F | C | F | G |

 よく使われる代理コード
  • 4つめのEmをCやC7に変更 
  • 7つめのFをDm・Dm7やAbに変更 
王道進行
 基本形(ハ長調・イ短調) 
  | FM7 | G7 | Em7 | Am |
 カノン進行と王道進行のミックス
  | C | G | Am | Em | FM7 G7 | Em7 Am | F(Dm) | G |

レットイットビー進行
 基本形(ハ長調)
  | C | G | Am | F |
 アレンジ

  | C | G/B | Am | F |

小室進行
 基本形(ハ長調・イ短調) 
  | Am | F | G | C |
 AmとFの間に、経過和音としてAm7/G・Em/GやGが入ることがよくある。 (「Get Wild」など)
  | Am G | F | G | C |
 経過和音のほうが長くなって、1小節分使うこともある。  
  | Am | Em/G | F G | C |

J-POP進行
  |FM7|G7|Em7|Am |

ユーロ進行
  | F  | G | Am  | Am |

イチロクニーゴー
  | C | Am | Dm | G |

映画主題歌 進行
  | Am | Am | Dm7 | Dm7 | Bm7-5 | E7 | Am |

R&B進行
  | Am | Dm | Am | Dm |
 または
  | Am7 | Dm7 | Am7 | Dm7 |
  | Am | Dm | Am | E7 |
  | Am | Dm | Am|E7 |
  | FM7 | Em7 | Am7 | Am7 |
  | FM7 | G7 | Am7 | Am7 |
  | Am7 | Em7 | FM7 | Em7 |
  | Am7 | Dm7 | Em7 | Dm7 |
  | FM7 | E7 | Am7 | Gm7 |
  | Am9 | Gm9 | FM7 | Bm7 | E7 |
  | Dm7 | G7 | CM7 | FM7 | Bm7-5 | E7 | Am | A7 |

作曲の基礎については、参考リンク[6],[7]を参照していただきたいです。


参考リンク
[1] 作曲に使えるコード進行の基礎知識
[2] コード進行 作曲パターン
[3] カノン進行/王道進行/小室進行/レットイットビー進行
[4] コード進行を考える
[5] 無料のギター楽譜(タブ譜&コード譜)公開サイト集
[6] 作曲(基礎編)
[7] 独学で作曲方法を学ぶなら、必ず見ておきたい5つのサイト