Ari's Blog

Reading makes me rich !

Posts Tagged ‘vim

2015/05/12 → 2015-05-12

leave a comment »

excel で提供されたデータを PostgreSQL に COPY で突っ込む時、エラーして気付き、ショックだった時のためのメモ。最初から気づいていれば excel の書式で設定するものを…。

だが、意外に提供された excel のデータが「’2015/05/12」とか、わざわざ親切にも?テキスト形式で指定してあったりするとやはりショック。excel 上の操作より、さっさと csv 出力して後は vim でやっちまったほうが速い時もしばしば。

:%s/(\d)\/(\d)/\1-\2/g

以上。どこかバンザイしている顔が並んでいるように見えるのは私だけ?

広告

Written by arito

2015-05-12 at 00:38

カテゴリー: Uncategorized

Tagged with

Fedora 21 でも vim からブログをいじる環境を構築した

leave a comment »

昨日、「ブログを vim で書く環境をあれこれしてみた」というブログを書いたが、Fedora でも面白半分にやってみた。ちなみに、この記事は出来上がった Fedora 上の環境から書いている。個人的な感想からすると、Linux で環境を構築した方が自分が何をやっているのか?をはっきり意識しながら作業できるので、構築しやすい気がする。もしかしたらすでに Mac で一度構築した後だからかもしれないけれど…。

最初は NeoBundle からインストールする。

NeoBundle の README.md を参照してまずは neobundle.vim をインストールする。

~% curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh | sh

上記で neobundle.vim はインストールされるので、その後必要な vim スクリプトパッケージは先の記事のサンプルの通り、.vimrc へ追記し、vim を起動すればインストールされる。

お次は Python の markdown 環境を作る。

まず easy_install を使って pip をインストールするのだが、Fedora 21 は Python が 2.7.8 と 3.4.1 が入っている。単に python とすれば 2.7 が、python3 とすれば 3.4 が起動する。なので、easy_install も2つ入っている。/usr/bin/easy_install は /usr/bin/easy_install-2.7 と同じで /usr/bin/easy_install-3.4 は Python 3.4 を利用しているだけだ。

とはいえ、Fedora では pip や python-markdown は全てパッケージ化されているから、easy_install や pip コマンドではなく、yum コマンドで必要なパッケージをインストールすればいいだけ、超カンタン!。以下、python 3.4 系を利用する前提で pip と markdown 関連のパッケージをインストールする。

~% sudo yum install python3-pip python3-markdown python3-markdown2
~% sudo yum install python-pip python-markdown python-markdown2

はい、出来上がり。あとは自分のブログにアクセスするための情報を ~/.vimpressrc に記載して完了。

追伸:
それでも別ウィンドウでリンクを開くための設定は下書きでアップロードしてから wordpress.com 上のエディタで加工している…。

2015/05/07 追記:
取り消し線をしているのは、python 3.4 系を使っているつもりが実は利用出来ていなかったことが判明したからだ。Fedora の vim は python3 を利用できるようにビルドされていないし、VimRepress 自体が python3 用に書かれていない。python3 を使っているつもりが、実はデフォルトでインストールされている python 2.7 系で動作していた、ということであった…。情けなし…。
このことに気づいたのは、実は Windows 8.1 でも同様の環境を試しに作ったらどうなるか?を試していて気付いたのであった。何故か?Windows 8.1 環境に python 2.7.9 がインストールできず、3.4 系で VimRepress を動作させようとしてエラーで動作せず、その原因を調べたら「VimRepress 自体が python3 系で動作するように書かれていない」ということに気付いたのであった。情けなし…。

Written by arito

2015-05-05 at 15:51

カテゴリー: Linux

Tagged with , , ,

なにも vim が全てではないのだよ

leave a comment »

先ほど vim でブログを書く環境を作ったのだが、では以降ずっとブログを vim で書くのか?というとそうではない。もちろん文字だけのブログを書く場合は、普段から文字を書くのに使っている vim を使うのが「字を書く」ということに関しては最も効率がいい。だが、ブログは「文字」だけではない。

vim で markdown を使ってブログを書く時に手が届かないところが何点かある。

  1. リンクで target を指定できない
  2. 画像などをアップロードできない(出来るのかもしれないが、多分面倒)
  3. wordpress.com を利用していて、画像関連でギャラリー機能をよく使っている。中でも「タイル」や「スライドショー」を多様するが、これは wordpress.com 上でしか簡単には設定できない。

私は今、あえてブログエディタ Desk で書いている。vim で markdown で書くのと、ブログエディタでで書くのとどう違うのか?を改めて体感するためだ。

ブログエディタ Desk は WYSIWYG でも書けるし、markdown でも書ける。

markdown で書く場合は、前述の 1. に関しては同じだ。target を指定したリンクは書くことができない。これは markdown の仕様だから仕方がない。2. に関しても画像を D&D してもその画像のファイルパス(file:///…)が出るだけで、それをアップロードしても当該画像が wordpress.com へアップロードされるわけではない。

WYSIWYG で書く場合は、1.、2. は解決される。当たり前だがブログエディタなるものはそういったことが目的に作られたものだからだ。だが、依然として wordpress.com の独自機能(サービス)である「タイル」や「スライドショー」は、ブログエディタでもできない。wordoress.com 上で作る必要がある。

前述のことを踏まえると、やはり1つのツールだけでブログを満足に完成させることは難しい。

  • ちょっとした記事へのコメントは PressThis を使って wordpress.com のエディタで書く。
  • 文字だけのブログは vim で書いても Desk で書いてもいい。ただし、target を指定したリンクは、一旦「下書」で wordpress.com へアップし、wordpress.com 上のエディタでリンクを加工してから公開する。
  • 複数画像をアップし、wordpress.com のギャラリー機能を利用する場合も同様。場合によっては終始 wordpress.com のエディタ使った方が楽かも。
  • 下書は vim で書く。オンラインストレージを使って、どんなデバイスでもメモ的に書くことができるから。「どんなデバイス」と書いたが、iOS デバイスでは、Box アプリから直接テキスト編集すればいい。Mac や PC は vim 環境あるから vim 利用できる。
  • Desk は基本 WYSIWYG で利用するのが使いやすい。wordpress.com よりもはるかに文章を書きやすいし、長い文章を書く環境には最適だ。参照先が多数あるような場合にはリンクを多用するから、Desk の WYSIWYG 環境で落ち着いて文章を書くことに集中するのがベスト。

こんな感じにならざるを得ない。適材適所ってことだ。

Desk: A Writing, Blogging, and Notetaking App for WordPress, Blogger, Tumblr, and More. App
カテゴリ: 仕事効率化
価格: ¥3,600

Written by arito

2015-05-05 at 00:14

カテゴリー: Mac

Tagged with , , , , ,

ブログを vim で書く環境をあれこれしてみた

leave a comment »

メモを vim で markdown 使って書こうかと色々調べていて、メモはとりあえずまだテキストでいいかな?でもブログ書くなら markdown で書きたいなと思い、そこから環境構築することにした。環境は Mac(Yosemite)。

目的とした到達点:

  1. vim でブログを書くこと
  2. markdown で書けること
  3. ということは vim 上で markdown がそれなりにハイライトされること
  4. vim 上で書いた内容を直接 wordpress.com へアップできること
  5. vim 上から新規にブログを作成できること
  6. vim 上から wordpress.com の既存の記事を参照して編集できること

さて、では何から始めるか?まずは vim で markdown を記載する環境を作ることろから始める必要がある。

2015/05/05 追記:
肝心の neobundle.vim 自体をインストールする方法を記載していなかった…。まずは端末を起動して以下を実行する。

~% mkdir ~/.vim/bundle
~% git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim

上記の方法でなくても、neobundle.vim の README.md に書いてある以下のコマンドの方が簡単かもしれない。(curl で始まるのが打ち込むコマンドね。念の為…。)

1. Install NeoBundle
If you are using Unix/Linux or Mac OS X.
Run below script.
$ curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh | sh
Complete.

追記ここまで:

まずは以下の様な内容を .vimrc へ追記し、NeoBundle を有効にして NeoBundle 自体をインストールするとともに、plasticboy/vim-markdown や sousu/VimRepress をインストールする。(その他必要に応じて NeoBundle から始まる行の例のようにパッケージを追加する。NeoBundle はパッケージ管理ツールなので使わなくても、手動で vim スクリプトをインストールすることももちろんできる)

” ————————-
” Start NeoBundle settings.
” ————————-
set nocompatible
filetype plugin indent off

if has(‘vim_starting’)
set runtimepath+=~/.vim/bundle/neobundle.vim
call neobundle#begin(expand(‘~/.vim/bundle’))
endif

NeoBundleFetch ‘Shougo/neobundle.vim’

NeoBundle ‘Shougo/unite.vim’
NeoBundle ‘Shougo/neosnippet.vim’
NeoBundle ‘plasticboy/vim-markdown’
NeoBundle ‘kannokanno/previm’
NeoBundle ‘tyru/open-browser.vim’
NeoBundle ‘grep.vim’
NeoBundle ‘sousu/VimRepress’

call neobundle#end()

filetype plugin indent on

NeoBundleCheck
” ———————–
” End NeoBundle settings.
” ———————–

これで test.md などのファイルを vim で開けば、filetype を markdown として認識してくれるだろう。ただし、これは MacVim を使う前提である。MacVim に既に色々なプラグインが入っているから、あまり .vimrc に色々書かなくても大体のことは認識してくれるはずだ。

さて、これで冒頭に書いた「目的とした到達点」の 1.、2.、3. までを実現できた。次は 4. 〜 6. だ。

vim で wordpress.com へアップしたり編集したりするには、VimRepress を使う。vim-scripts がオリジナル版のようだが、開発が止まっていて、それとは別に fork されたものがあり、そのうちの sousu/VimRepress の方を使うことにした。指定したローカルフォルダに投稿原稿を保存できるからだ。

Python の実行環境が必要だが、Mac には最初から整備されている。Python の markdown と markdown2 パッケージをインストールする必要がある。端末から

~% sudo easy_install markdown
~% sudo easy_install markdown2

とすればインストールできる。なお、Python のパッケージ管理は最近では pip なるものを使うのが主流らしいので、ついでに pip もインストールしておく。先に pip をインストールしておけば、先の markdown、markdown2 も pip コマンドでインストールできる。

~% sudo easy_install pip
~% sudo pip install markdown
~% sudo pip install markdown2

sousu/VimRepress は、先に NeoBundle のインストールしたところで NeoBundle ‘sousu/VimRepress’ と記載したので、vim を再起動した段階でインストールされているだろう。

最後に ~/.vimpressrc に自分のブログの情報を記載する。

[aritosato.wordpress.com]
blog_url = https://aritosato.wordpress.com/
username = あなたのブログのユーザ名
password = パスワード
local_draft_dir = ~/Box\ Sync/blog

上記は私のブログに VimRepress を使って vim からブログを更新するための情報だ。複数ブログを持っている人は [blog0]、[blog1] などと記載し、:BlogSwitch 1 などとして数字を指定して切替えることができるらしい。

これで vim を使って markdown でブログを書き、新規作成/編集/アップローロができるようになっているはずだ。sousu/VimRepress の使い方は本家 vim-scripts/VimRepress を参照すべし。

本家のサイトでは、:BlogSave のデフォルトは「公開=publis」と書いてあるが、私の環境では?デフォルトは「下書=draft」になっている。

さぁ、これで vim を使ってブログを書く環境が完成した。使い易いかどうかはあなたしだい…。

Written by arito

2015-05-04 at 19:11

カテゴリー: Mac

Tagged with , , ,

iPhone で Vim!

leave a comment »

iOS用のVim Vi IMprovedがApp Storeで配信開始! | ひとりぶろぐ.

おぉぉぉ!

iPhone で Vim とか Emacs とか絶対ないと思っていたのに、出たー!

iPhone で触ってみたけど、ソフトキーボードだけでは、明らかに使い辛いエディタなだけだが、つい、ホームに配置してしまった…。

それに、最近 Bluetooth キーボード使っているので、キーボード使ったら、私的には最強エディタ確実。

ただ、$HOME に保存するのはいいけど、ファイルの出し入れが iTunes ないとできないのは痛い。DropBox やメール添付できるメニュー出るといいのにな。メモ帳とか Vim で書けたら、もう無敵!

2012/1/21 追記:

情報元のサイト、内容が超更新されている。是非!

Written by arito

2012-01-21 at 01:24

カテゴリー: iPhone

Tagged with

インサートモードで矢印を効かすと IM の On/Off が異常に遅くなる

leave a comment »

ことが今更わかった…。インサートモードからノーマルへ戻ったときに、IM が Off になるのが異常に時間がかかる。数秒だが、かなりイライラする。

vim 設定微調整」で

noremap ^[OA <Up>
noremap ^[OA <Up>
noremap ^[OB <Down>
noremap ^[OB <Down>
noremap ^[OC <Right>
noremap ^[OC <Right>
noremap ^[OD <Left>
noremap ^[OD <Left>

と書いたばかりだけど、これが原因だった!というか、この設定自体が IM の Off 動作を遅くしているわけではなく、「日本語入力固定モード」の切替スクリプトと、上記のコントロールコードの相性の問題みたい。矢印キーを使わないように、以下のマップにして、とりあえず慣れるようにする。

imap <C-j> <Down>
imap <C-k> <Up>
imap <C-h> <Left>
imap <C-l> <Right>

<C-j> は、「日本語入力固定モード」の切替スイッチと被っていたので、こっちを <C-i> にした。

感覚的には、インサートモードでは「Ctl + ノーマルモードの移動キーで移動」として、自分的にこじつけた。

なんでこんなことにこだわっているかというと…前にも書いたが、悲しい出来事があったからなのさ…。

追記:

このキーマップでも、矢印キーをまったく使わなくはできない。それは、日本語変換時の文節変更時にこのキーマップが効かなくて、矢印キーを使わざるを得ない。日本語変換候補が出ているときは、矢印キーは有効に機能して、上記マップは機能しない。

追記2:

「<C-j> は、「日本語入力固定モード」の切替スイッチと被っていたので、こっちを <C-i> にした。」と書いたが、入力モードで、Tab が <C-i>と同じ認識になるのか?「日本語入力固定モード」の切替が発生するので、<C-a> にさらに変更した。

Written by arito

2012-01-06 at 01:52

カテゴリー: Linux

Tagged with

vim 設定微調整

with one comment

https://sites.google.com/site/fudist/ で配布しているサンプル設定ファイルを利用しているのだけど、私の環境(fedora)では、端末上で矢印キーが効かなかった。また、gvim が起動する度にウィンドウの縦サイズが狭くなっていくことに気づいた。

またしても原因追求はさておき、対処療法…

1. gvim でウィンドウサイズが起動の度に狭くなる点

$ cd .vim/
$ rm .vimpos
~/.gvimrc から、 「Window位置の保存と復帰」の部分を全てコメントアウト

2. 端末上で vim を起動して、インサートモードでの矢印キーを効かす

~/.vimrc に、noremap で矢印キーをそれぞれ定義する

noremap ^[OA <Up>
noremap ^[OA <Up>
noremap ^[OB <Down>
noremap ^[OB <Down>
noremap ^[OC <Right>
noremap ^[OC <Right>
noremap ^[OD <Left>
noremap ^[OD <Left>

※実際にはコントロールコードが入っているのでご注意を

なんで突然こんな細かいことを…理由があるのです。それは明日書くけど、悲しい物語が…。

Written by arito

2012-01-05 at 01:25

カテゴリー: Linux

Tagged with

%d人のブロガーが「いいね」をつけました。