Showing posts with label vim. Show all posts
Showing posts with label vim. Show all posts

2015-11-20

vimのdtとdfが覚えられない。

vimのコマンド、dtdfが覚えられない。

コマンドの意味は以下のURLをご参照
http://vim.wikia.com/wiki/Delete_words_in_a_different_way


たとえ以下のコードがあって、カーソルが&にあったときのことを考える。


 def foo(string, &reg_expected_value)


今やりたいのは、変数名"reg_expected_value"を変更すること。

つまり正解は、

dt)である。

で、これが覚えられない。毎回 

「うーん、dfだと)までだから、df)だとか、その反対だ!!」

とかやっている。脊髄反射で、がんとキーが出てこないのだ。

df,dtの覚え方

そんなわけで、なんか良い覚え方ないかな、と考えていた

tfを並べてみてみる。

t
f

なぜtがひとつ前まで、fがそこまでなのか。

fはフロント?
tはなんの略。

いやキーボードの位置?。fの方が左にある。逆じゃん!!

よく使う方のfを優先した?

もう何でもいいや。覚えられればそれでいい。

とりあえず、ホームポジションのdfで頑張るか。


2015-11-13

NeoBundle` commands must be executed within a neobundle#begin/end blockってなに??

私のvimが壊れちゃったみたい、、、


cygwinにwindowsの_vimrcをコピペして、:NeoBundleInstallしただけなのにどうして!!


って
NeoBundleの設定を
以下でくくればOKらしい。

  call neobundle#begin(expand($VIMBUNDLE))
  :
  :
  call neobundle#end()


neobundleの仕様が変わった??よくわからんが、とりあえずエラーはでなくなったのでOK


ちなみにコマンドの意味はこういうことかな。


call
call コマンドは、渡された関数を実行するコマンド(その戻り値を使用しないで関数を使用)

neobundle#begin
「ファイル名#関数名」
ファイル名はautoloadフォルダを参照。こちらに説明

vimscriptはこちらこちら(本家)が詳しい。







cygwinとTmuxとtweetvimなどもろもろのインストールまとめ

TweetVimなど今週も暇つぶしで諸々インストールした。


TweetVimのインストール

vimrcに以下を追加

NeoBundle 'basyura/TweetVim.git'
NeoBundle 'yomi322/unite-tweetvim.git'
NeoBundle 'basyura/twibill.vim'
NeoBundle 'rhysd/tmpwin.vim'
NeoBundle 'mattn/webapi-vim'
NeoBundle 'h1mesuke/unite-outline'
NeoBundle 'basyura/bitly.vim'
nnoremap _ :call tmpwin#toggle('TweetVimHomeTimeline')


これで_でタイムラインが確認できる。さらに能率の悪化?


久々にタイムラインを確認したが、フランスのテロで悪い意味で盛り上がっていた。
亡くなった方の冥福を心から祈りたい。


今週のVim関連のネタ

vimshellがあれば、tmuxいらないかなと思いつつ、cygwinにtmuxをインストールした。
(brewで何でもできるmacbookも良いのだけれど、thinkpadのポインタがないとダメな体質なのです)

cygwinにneobundle

いつも忘れるneobundleのインストール方法。何か覚える方法ないものか。

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

以下windowsの_vimrcをコピーして:NeobundleInstallで終了。
便利すぎで怖い。

cygwinとtmux

cygwinのインストールは非常に簡単。setup.exeを実行してパッケージを選択するだけ。
cygwinでtelnetするにはnetutilsが必要なのに注意。


あと、apt-cygは単なるスクリプトなのでgit cloneでOK。具体的には、以下のとおり。

wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cyg
chmod 755 apt-cyg
mv apt-cyg /usr/local/bin/
apt-cyg -m ftp://ftp.iij.ad.jp/pub/cygwin/ update
apt-cyg install tmux


Tmuxを学ぶ


(prefixキーと呼ぶらしい。)が異質。左移動で使うキーなのだけど。。。

キーバインド変更は.tmux.confで。詳細はここが詳しい。
普通のコマンドはおそらくすべてキーバインドを変更してしまいそう。取り急ぎこのがvim準拠で素晴らしい。

で、tmuxのいいところがセッションの保存。PCを再起動したときに元の設定するのは面倒すぎる。
そんなかゆいところに届くプラグインが、tmux-resurrect

tmux-resurrectのインストール方法はリンク先のとおり。非常に簡単。
(Qiitaって同じネタがたくさんある。悪いことではないけど、真打ちはこれって(保存数で??)リンクがあると嬉しいかな。)










2015-10-26

vimprocをwindows7環境でコンパイル

vimprocがエラーで固まるようになってしまった。

エラーは以下のとおり

run.300..612の処理中にエラーが検出されました。:
E117 未知な関数です vimproc#pgroup_open
E15: 無効な式です

原因はよくわからなかったがvimprocに問題があるようだったので、再度コンパイルしたら正常に動いた。

コンパイル手順はQiitaにでているとおり。
以下引用です。

1. gowのインストール

https://github.com/bmatzelle/gow/wiki にアクセス。
Download Installer のリンクをクリック。
Gow-0.8.0.exeをダウンロードしてインストール。
環境変数「Path」に「;C:\Program Files\Gow\bin」を通す。(インストール先については、インストール時の環境に応じて読み替えてください。)
なお、Gow-0.8.0.exeのようなインストーラー形式ではなく、 https://github.com/bmatzelle/gow の「Download ZIP」からバイナリファイル形

式をダウロードし、解凍後のbinディレクトリに対して環境変数を設定する方法でもOKです。

2. MinGWのインストール

http://sourceforge.net/projects/mingw-w64/ にアクセス。
Browse All Files をクリック。
Toolchains targetting Win64 をクリック。
Personal Builds をクリック。
sezero_4.5_20111101 をクリック。
mingw-w64-bin_i686-mingw_20111101_sezero.zip をダウンロード。
ダウンロードしたmingw-w64-bin_i686-mingw_20111101_sezero.zipを、適当な場所に解凍します。※ここでは「C:\」直下に解凍することとします。
解凍後、「C:\mingw64\bin」配下の「x86_64-w64-mingw32-gcc.exe」を「gcc.exe」にリネームします。
環境変数「Path」に「;C:\mingw64\bin」を通す。(インストール先については、インストール時の環境に応じて読み替えてください。)

3. vimprocのコンパイル

cd C:\Users\ユーザー名\.vim\bundle
>git clone https://github.com/Shougo/vimproc.vim.git vimproc
>cd vimproc
>make -f make_mingw64.mak

Gowとは?(Gnu on windows)

「Gow」は、WindowsのコマンドプロンプトでUnixのコマンドを利用できるようにするソフト

GowについてはこちらのQiitaが詳しい。どんなコマンドが利用できるかはgow -lで確認できる。

MinGWとは?

こちらが詳しい。

vimprocのビルド環境として利用。インストール後パスを通したら、gcc --versionでバージョン情報を確認できる。





2015-02-27

gVimでメイリオ、Consolasを利用する方法

メモ。

以下のサイトが詳しい。

視認性の高いプログラミング用フォント「Consolas」と「メイリオ」をまとめて無料で入手する

gVimでconsolasを使う


consolasのダウンロード

vimネタ その2


Vimネタを引き続き



ネタもとはこちらのサイト
Vim起動時にScratch


参考サイト(autocommandは一番詳しい)



お題のコマンド

au VimEnter * Scratch | set ft=vim | b 1

au:autocommandの略
VimEnter:event
*:pat(Scratchに関連づけられたすべての)
set ft=vim ; ftはfiletypeの略,ft=vimは不明だがファイル・タイプの指定をしていると思われる。

autocommandの定義

:au[tocmd] [group] {event} {pat} [nested] {cmd}






2015-01-30

NERDTreeのブックマークの使い方とかまとめ

vimにNERTTreeを入れてみた。




NERDTreeのインストール方法
    • _vimrc,vimrcに以下を追加でOK
      • NeoBundle 'scrooloose/nerdtree'
      • Vimから

NERDTreeの使い方

    • Qiitaを参考に。
    • 基本
      • C-dで起動。qで閉じる。C-dの繰り返しでもOK
        • nnoremap :NERDTreeToggle
      • /:検索
      • jkなどいつものvimコマンド:移動
      • Enter:移動
      • m:追加、移動、などのマニュアルメニューを開く
      • t:タブで開いて移動
      • T:タブで開いて移動しない
      • i:水平分割して開く((ichi ”漢字の一”的な意味で覚える。ということらしい。)
      • s:垂直分割して開く((進撃の巨人のs と覚える。ということらしい。)
      • ?:ヘルプ
      • u:上の階層に移動
    • NERDTreeでBookmark
      • B:ブックマークの表示、非表示
      • D:ブックマークの削除
      • :Bookmark ... 登録

2014-12-23

nmapとnnoremapの違い

最近勉強しているvimについて自分用のメモをごちゃごちゃと。

nmapとnnoremapの違い


http://vimblog.hatenablog.com/entry/vimrc_key_mappingより転記

モード再割当有り再割当無し
ノーマルモード+ビジュアルモードnoremapmap
コマンドラインモード+インサートモードnoremap!map!
ノーマルモードnnoremapnmap
ビジュアル(選択)モードvnoremapvmap
コマンドラインモードcnoremapcmap
インサート(挿入)モードinoremapimap


再割当てと再割当てなしの違い

(http://sandragon.hatenablog.com/entry/2013/05/20/123427)
  •  " マッピングに関するMEMO
     " noreがつくものとつかないものの違い(mapとnoremapとか)
     " noreがつかないものを使うと、キーの再割当てが発生する
     " -> mapはキーシーケンスを展開した後、さらに別のマップを適用しようとする
     " -> noremapは一度だけ展開する
     " (例)
     " map {A} {X}
     " map {B} {A}
     " 上のようにマッピングされていた場合、Bを押すとAが実行され、さらにAに割り当てられたXが実行される
     " noremapだとマッピングを1度しか展開しない  混乱を避けるためにnore系を利用するのが無難かも

vimrcをすぐに開けるようにする

nnoremap ,v :edit ~/_vimrc



これから学習したいこと

関数,augroup,autocmdの便利な使い方。文字のカウントとか関数を使えば綺麗にできるっぽい。

タブ


参考になるサイト

vimrc展示会
http://vimwiki.net/?vimrc%C5%B8%BC%A8%B2%F1%BE%EC#content_1_1


ぼくのかんがえたさいしょうのvimrc
http://deris.hatenablog.jp/entry/2014/05/20/235807