My.vimrc
随時アップデート中
" " NeoBundle " first setting " curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh | sh " vim " :NeoBundleInstall " if has('vim_starting') set runtimepath+=~/.vim/bundle/neobundle.vim call neobundle#begin(expand('~/.vim/bundle/')) NeoBundleFetch 'Shougo/neobundle.vim' NeoBundle 'scrooloose/nerdtree' NeoBundle 'jistr/vim-nerdtree-tabs' NeoBundle 'Shougo/neocomplcache' call neobundle#end() endif set number set ruler syntax on filetype plugin on " filetype indent on " 方向キー対応 " imap ^[OA <Up> " imap ^[OB <Down> " imap ^[OC <Right> " imap ^[OD <Left> " 全角記号対応 " set ambiwidth=double " colorscheme default " " NERDTree " " nnoremap <silent><C-e> :NERDTreeToggle<CR> " " NEADTreeTabs " nnoremap <silent><C-e> :NERDTreeTabsToggle<CR> " " neocomplcache " highlight Pmenu ctermbg=4 highlight PmenuSel ctermbg=1 highlight PMenuSbar ctermbg=4 " 補完ウィンドウの設定 set completeopt=menuone " 補完ウィンドウの設定 set completeopt=menuone " rsenseでの自動補完機能を有効化 let g:rsenseUseOmniFunc = 1 " let g:rsenseHome = '/usr/local/lib/rsense-0.3' " auto-ctagsを使ってファイル保存時にtagsファイルを更新 " let g:auto_ctags = 1 " 起動時に有効化 let g:neocomplcache_enable_at_startup = 1 " 大文字が入力されるまで大文字小文字の区別を無視する let g:neocomplcache_enable_smart_case = 1 " _(アンダースコア)区切りの補完を有効化 let g:neocomplcache_enable_underbar_completion = 1 let g:neocomplcache_enable_camel_case_completion = 1 " 最初の補完候補を選択状態にする let g:neocomplcache_enable_auto_select = 1 " ポップアップメニューで表示される候補の数 let g:neocomplcache_max_list = 20 " シンタックスをキャッシュするときの最小文字長 let g:neocomplcache_min_syntax_length = 3 " 補完の設定 autocmd FileType ruby setlocal omnifunc=rubycomplete#Complete if !exists('g:neocomplete#force_omni_input_patterns') let g:neocomplete#force_omni_input_patterns = {} endif let g:neocomplete#force_omni_input_patterns.ruby = '[^.*\t]\.\w*\|\h\w*::' if !exists('g:neocomplete#keyword_patterns') let g:neocomplete#keyword_patterns = {} endif let g:neocomplete#keyword_patterns['default'] = '\h\w*'
CSRの作成方法メモ
# genarate random text openssl md5 * > rand.dat # genarate private key openssl genrsa -rand rand.dat -des3 2048 > mydomain.com.key # generate csr openssl req -new -key mydomain.com.key -out mydomain.com.csr # confirm openssl req -in mydomain.com.csr -text # release private key openssl rsa -in mydomain.com.key
証明書の申請なんて滅多にやらなくなったなぁ。
RailsConsoleでサクッとメール送信
本番環境でメール送信チェックとかするとき用に。
ActionMailer::Base.mail(to: "test@example.com", from: "test@example.com", subject: "題名", body: "本文").deliver
RubyでHTTPリクエストを送る
たまにしか使わなくてよく忘れるのでメモします。
require 'net/http' require 'uri' uri = URI.parse("http://kinosuke.hatenablog.jp/") # when get request req = Net::HTTP::Get.new("#{uri.path}?#{uri.query}") # when post request # req = Net::HTTP::Post.new(uri.path) # req.set_form_data({first_name: 'taro', last_nem: 'yamada'}, ';') # when use basic auth # req.basic_auth('username', 'passowrd') http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = (uri.scheme == 'https') # これ無いとSSLページ接続時に「end of file reached (EOFError)」というエラー出る res = http.request(req) # keep-alive使わない版 res = http.start {|h| h.request(req) } # keep-alive使う版。ブロックが閉じた時点でセッションを閉じる case res when Net::HTTPSuccess, Net::HTTPRedirection # OK puts res.code puts res.body else # NG puts res.code puts res.body end
Rubyでログを強制出力する
require 'logger' _log = Logger.new('/tmp/debug.log') _log.info("#{ログ出力したいもの}")
こちらを参考にさせていただきました
http://dev.classmethod.jp/client-side/language-client-side/output_log_using_logger/
sedコマンドの基本を知っておく
基本系
- eオプションにコマンドを渡して使う
コマンドにはs(置換), d(行削除), p(行抽出)などがある。
cat input.txt | sed -e 'コマンド' # もしくは sed -e 'コマンド' input.txt
使用例
# 正規表現で文字列の置換を行う cat input.txt | sed -e 's/xxx/XXX/g' # 指定行を削除する cat input.txt | sed -e '1,10d' # 指定行だけ出力する # ※nコマンドはpで指定した行だけを抽出するオプション cat input.txt |sed -n -e '1,10p' # 正規表現でマッチする行を削除 cat input.txt | sed '/hoge/d' # 正規表現でマッチする行だけ出力 cat input.txt | sed -n -e '/hoge/p' # 10行目から20行目を全置換 # ※sコマンドの前に数字を置くと、その行のみが対象となる。 $ sed 3,5s/abc/ABC/g # ファイルを置換する # -i, --in-place オプションを使う sed -i -e 's/before/after/g' target.txt
こんな便利なことも
# 後方参照 echo 090-1111-2222 | sed 's/\(...\)-\(....\)-\(....\)/\1\2\3/' # => 09011112222
こちらのサイトにて勉強させていただきました。
https://hydrocul.github.io/wiki/commands/sed.html
RubyでHashの要素に.(ドット)でアクセスしたい
Struct使えば楽にできるみたい。
hash = {hoge: 'fuga'} obj = Struct.new(*(hash.keys)).new(*(hash.values)) obj.hoge # => 'fuga'