コピペコードで快適生活

明日使えるソースを自分のために

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

証明書の申請なんて滅多にやらなくなったなぁ。

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

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