はじめに
コマンドラインやシェルスクリプトにて、
ディレクトリ名だけを取得したいときありますよね。
すごい簡単なのですが忘れがちなのでメモ
どうやるか
basename $(pwd)
以上ですw
$ pwd /Users/tweeeety $ basename $(pwd) tweeeety
おわり
わすれがちーー\(^o^)/
コマンドラインやシェルスクリプトにて、
ディレクトリ名だけを取得したいときありますよね。
すごい簡単なのですが忘れがちなのでメモ
basename $(pwd)
以上ですw
$ pwd /Users/tweeeety $ basename $(pwd) tweeeety
わすれがちーー\(^o^)/
久しぶりにperlを触っていて、
とある処理を行うときに
Wide character in gzwrite at output-sample.pl line 20.
のように怒られたのでメモ。
やろうとしていたのはこれだけ
use utf8; # 省略 # 怒られる処理 $fh->gzwrite($text);
ただ単にperlを実行するだけで怒られる。
$ plenv exec perl output-sample.pl Wide character in gzwrite at output-sample.pl line 20
対応は簡単で、内部文字列にutf8 encodeをすれば大丈夫です
use utf8; use Encode; # 省略 $text = encode('utf-8', $text); # 怒られる処理 # -> 怒られなくなる $fh->gzwrite($text);
あいかわらずperlは文字コード関連はよく何か起こるなー\(^o^)/
久しぶりにmakefileを書いていて
失敗したときに無視するのどうやるんだっけなーとなったのでメモ
hoge.sh
というのがあり、中身がエラーだとする
hoge: @./hoge.sh
# errorが出る $ make hoge make: *** [hoge] Error 255
実行を表す@
に-
をつけることで無視できるようです!
@
->-@
とする
hoge: -@./hoge.sh
# errorだがignoredされる $ make hoge make: [hoge] Error 255 (ignored)
参考サイトさんthxです\(^o^)/
久しぶりにperlを触りたい機会があったので、
以下を元にplenvをinstallしていました。
途中でSegmentation fault: 11
というエラーが出たのでメモ
# versionは出る $ plenv --version plenv 2.2.0 # install -lはエラー $ plenv install -l Segmentation fault: 11
perl build
をbrew install perl-build
でinstallしていましたが、
tokuhiromさんところから持ってきて入れると良さそうです。
# install -lがエラー $ plenv install -l Segmentation fault: 11 # pluginsディレクトリがないことを確認 $ ls -al ~/.plenv/ total 0 drwxr-xr-x 4 tweeeety tweeeety 128 5 5 00:10 . drwxr-xr-x+ 52 tweeeety tweeeety 1664 5 5 00:04 .. drwxr-xr-x 2 tweeeety tweeeety 64 5 4 22:28 shims drwxr-xr-x 2 tweeeety tweeeety 64 5 4 22:28 versions # download $ git clone git://github.com/tokuhirom/Perl-Build.git $(plenv root)/plugins/perl-build/ # pluginsにはいる $ ls -al ~/.plenv/ total 0 drwxr-xr-x 4 tweeeety tweeeety 128 5 5 00:10 . drwxr-xr-x+ 52 tweeeety tweeeety 1664 5 5 00:04 .. drwxr-xr-x 3 tweeeety tweeeety 96 5 5 00:12 plugins drwxr-xr-x 2 tweeeety tweeeety 64 5 4 22:28 shims drwxr-xr-x 2 tweeeety tweeeety 64 5 4 22:28 versions # install -lが正常にうごく $ plenv install -l Available versions: 5.29.10 5.29.9 ~ 省略 ~ 5.6.0 5.5.670 5.003_13
ひさしぶりのperl\(^o^)/
単一行のコメントは#
ですが、
複数行のはよく忘れるのでメモ
<< [任意の文字]
でコメントアウト開始[任意の文字]
でコメントアウト終了
#!/bin/bash echo "hoge" # がコメントされる << COMMENTOUT echo "fuga" echo "piyo" COMMENTOUT
ちゃちゃっとやるばあいは
vimのコマンドで複数行の冒頭に#
とやっていた\(^o^)/
最近はManager業に専念しているため
だいぶ技術ブログの更新を怠っていました ><
と、いいながら
ふとしたことからpythonを使いたく
macにデフォルトで入っているのはPython 2.7.10
。
使いたかったのが3.x系だったので切り替えて使えるようにpyenvをいれたメモです。
- XcodeやHomebrewをインストール
- pyenvとは?
- pyenvをインストール
- pyenvでpython3.xをインストール
念の為に書きましたが、ここは割愛します!!
macで開発するには何にしても必要ですしね。
Homebrewとは?的な記事は置いておきます。
pyenvとは?ですが、参考サイトから引用させて頂きます。
rbenvやplenvもあるのでそのあたりを使ったことがあるなら名前からはわかりそうですが..
pythonのバージョンを簡単に切り替えることができるようにしてくれるツールです。2系列と3系列との切り替えに便利です。また、ディレクトリごとにpythonのバージョンを切り替えることができます。
- 複数バージョンのPythonを簡単に切り替えられる
- 色々なバージョンのPythonを~/.pyenv以下に配置している
[参考サイト]- pyenvのインストール、使い方、pythonのバージョン切り替えできない時の対処法
- Pyenvの使い方
ここからが本題ですね。
まずはデフォルトのversionを確認します。
$ python --version Python 2.7.10
おもむろにpyenvをいれます。
versionが確認できればokです。
$ brew install pyenv $ pyenv -v pyenv 1.2.11
次にパスを通しておきます。
# ~/.bash_profileに追記 $ vim ~/.bash_profile -- vi追記 -- export PATH="$HOME/.pyenv/shims:$PATH" ------------ # 反映 $ source ~/.bash_profile
インストール可能のvesionを確認してみます。
めっちゃある...
$ pyenv install -l Available versions: 2.1.3 2.2.3 ~ 省略 ~ stackless-3.4.7 stackless-3.5.4
pyenvを使ってpython3.7.2をインストールします
# 現在installされたversionを確認 # まだsystem pythonしかはいってない $ pyenv versions * system (set by /Users/tweeeety/.pyenv/version) # 3.7.2をインストールj $ pyenv install 3.7.2 # インストールされたことを確認 # *がついてるものが今利用しているversion $ pyenv versions * system (set by /Users/tweeeety/.pyenv/version) 3.7.2 # version確認 $ python --version Python 2.7.10 # 切り替え $ python global 3.7.2 # 確認 $ pyenv versions system * 3.7.2 (set by /Users/tweeeety/.pyenv/version) $ python --version Python 3.7.2
なんとなくpyenvのhelpをみてみる
$ pyenv --help Usage: pyenv <command> [<args>] Some useful pyenv commands are: commands List all available pyenv commands local Set or show the local application-specific Python version global Set or show the global Python version shell Set or show the shell-specific Python version install Install a Python version using python-build uninstall Uninstall a specific Python version rehash Rehash pyenv shims (run this after installing executables) version Show the current Python version and its origin versions List all Python versions available to pyenv which Display the full path to an executable whence List all Python versions that contain the given executable See `pyenv help <command>' for information on a specific command. For full documentation, see: https://github.com/pyenv/pyenv#readme
簡単に切り替え完了ーーー\(^o^)/
新しいmacになったのでvimの設定なんかをやり直してます。
markdownはatomで書いていたのですが、
これを期にmarkdownもvimに移行しようと思ったのでその際の自分用メモ
- pluginを入れる
- plasticboy/vim-markdownの設定する
- kannokanno/previmの設定する
- tyru/open-browser.vimの設定する
- .vimrcの記述
3つのpluginを入れます
Plugin 'plasticboy/vim-markdown' Plugin 'kannokanno/previm' Plugin 'tyru/open-browser.vim'
以下、簡単な説明です
- plasticboy/vim-markdown
- シンタックスハイライトします
- headに応じて折りたたみもできます
- kannokanno/previm
- 保存したMarkdownをブラウザでプレビュー可能にします
- tyru/open-browser.vim
- カーソル下のurlや文字列を開いたり検索したりします
let g:vim_markdown_folding_disabled = 1 let g:vim_markdown_auto_insert_bullets = 0 let g:vim_markdown_new_list_item_indent = 0
let g:vim_markdown_folding_disabled = 1
markdownなファイルを開いたときに
デフォルトで折りたたみになってしまうのでoffにします。
vim_markdown_auto_insert_bullets
は以下を参照ください。
autocmd BufRead,BufNewFile *.md set filetype=markdown let g:previm_open_cmd = 'open -a Google\ Chrome' " ctrl pでプレビュー nnoremap <silent> <C-p> :PrevimOpen<CR>
autocmd BufRead,BufNewFile *.md set filetype=markdown
ちゃんと調べてませんが、
このままだと.mkd
のファイルに対してのハイライトらしいので
.md
もfiletype=markdownとなるようにします。
nnoremap <silent> <C-p> :PrevimOpen<CR>
基本は:PrevimOpen
でプレビューが開きます。
ctrl + p
というショートカットで開くようにします。
let g:netrw_nogx = 1 " disable netrw's gx mapping. nmap gx <Plug>(openbrowser-smart-search) vmap gx <Plug>(openbrowser-smart-search)
nmap gx <Plug>(openbrowser-smart-search)
vmap gx <Plug>(openbrowser-smart-search)
URLや文字列の上でgx
と打つことで、
URLならブラウザでURLが展開され、
文字列なら検索結果が表示されます。
以下、参考サイトです。
以下、.vimrcの記述です。
" " about markdown " Plugin 'plasticboy/vim-markdown' Plugin 'kannokanno/previm' Plugin 'tyru/open-browser.vim' " plasticboy/vim-markdown " 折りたたみの禁止 let g:vim_markdown_folding_disabled = 1 let g:vim_markdown_auto_insert_bullets = 0 let g:vim_markdown_new_list_item_indent = 0 " kannokanno/previm autocmd BufRead,BufNewFile *.md set filetype=markdown let g:previm_open_cmd = 'open -a Google\ Chrome' " ctrl pでプレビュー nnoremap <silent> <C-p> :PrevimOpen<CR> " tyru/open-browser.vim let g:netrw_nogx = 1 " disable netrw's gx mapping. nmap gx <Plug>(openbrowser-smart-search) vmap gx <Plug>(openbrowser-smart-search)
昔に設定したものも、再度vimの設定しなおすとほとんど覚えてないという\(^o^)/