vim

Vim + Racket環境の構築

vim

色々ハマったので書いとくぜ。後で書き足す。 Racketのインストール。 MzScheme5とでも言うべきか?名称が変わっただけでなく、とんでもなくパワーアップしているようだ。Racket5.3は今のところ対応してないみたいなので、5.2.1を入れてみる。The Racket Lan…

Vim + MzSchemeでマクロが使えた。

名前空間周りでエラーがあってマクロがうまく使えなかった(モジュールで囲むとうまくいく)ので、全くマクロはつかってなかったのですが、Vimのドキュメントを見ると、何やら名前空間をゴニョゴニョやってるみたいなので、解読中。 Vimのeval時にvim-global-n…

MzScheme+Vim 7.1をFedora 8にインストール

ふふ。案外大変だった。 Fedora8に用意されているMzScheme(plt)パッケージはGCの関係で使えないので、MzScheme本家から372のソースを貰ってくる。http://download.plt-scheme.org/mzscheme/おし。 展開して、/usr/local/pltにインストールしていく。 % ./con…

VimScriptをその場で実行

vim

.vimrcがやたら汚くなってきたので書き直し中。いちいちsource %とかするのが面倒なので、その場で反映させたい。いつも忘れるのでメモ。ヘルプをみると、 @{0-9a-z".=*} Execute the contents of register @レジスタでレジスタ内のコマンドが実行できるので…

Vimからhrefを見る

さっくりと設定っと。 command! -nargs=1 Href !href <args> | nkf -w nmap <buffer> K :Href <cword><CR> とりあえずオッケー。</cr></cword></buffer></args>

vi clone in Javascript

Vim

ぶったまげた。こらスゲェVian -- vi clone in Javascript

Vimでデュアルgrep

Vim

:grepは多用するコマンドのひとつ。 :grep hoge % :copen しかし、Quickfixウィンドウは1個しか持てないのが悩みの種。 もう一個開きたい。 もう一個検索したい。 そこで登場するのがロケーションリスト。ただ単に「l」をつければいい。 :lgrep moge % :lope…

前のファイルを開く。

Vim

知らなかった。便利だ。 <C-^> 「:e #」と同意。</c-^>

Vim+Screenプログラミング

Vim

僕の初のVim+Screenプログラミングはやはりコレ。emacsのC-x C-eが欲しい。 if !has('gui_running') function! ScreenSpiritOpen(cmd) call system("screen -X eval split focus 'screen " . a:cmd ."' focus") endfunction function! ScreenEval(str) let s…

Vimでinfo

Vim

あ、こんな手があった。 % vim -c "set ft=info" /usr/share/info/screen.info.gzinfoはただのテキストファイルなので、直接開いちゃっても問題ない。快適杉。

Vim起動時にScratch

Vim

ちょっとEmacs使ってていいなぁと思ったので、kaoriya版VimのScratchを活用してみた。.vimrcに au VimEnter * Scratch | set ft=vim | b 1 いい感じ。ついでに、~/.vim/after/ftplugin/vim.vimあたりに nmap <buffer> <silent> <C-CR> :exe getline(".")<CR> vmap <buffer> <silent> <C-CR> "zy:@z<CR> Ctrl + Ent</cr></c-cr></silent></buffer></cr></c-cr></silent></buffer>…

Vimでeval

Vim

そういえば、Vimには、evalがあるんだ。メモメモ。現在のファイルを新しいウィンドウで開く。 exe eval("'sp ' . expand('%')") おぉぉぉぉ。ユーザー定義だって。 function! Hoge(s) return "ほげ " . a:s endfunction echo eval("Hoge('もげ')") ほげ もげ…

他のウィンドウにコマンドを送りつける

Vim

本日のvimscript。やべぇ。すげぇ可能性を感じた。 " return current window number function! MoveWindow(buf_name, split) let cur = winnr() if !buflisted(a:buf_name) return -1 else let winnr = bufwinnr(a:buf_name) if winnr == -1 if a:split exe …

Vimのプラグインがやたら使えるようになった。

Vim

久しぶりに:GetLatestVimScriptsをしたら、今まで微妙に使いずらかったプラグインが続々更新されたよぉ(嬉 YankRing emacsのkillリングのエミュレーター。pしたら,でyankの履歴が辿れるようになるプラグイン。 Vim7のテキストオブジェクトに対応。yiwとかし…

非同期通信ことはじめ

Pythonで書かれたVim用shellフロントエンドvimshというソースを読んでます。かなり便利なんですが、古いしバグがあるので、修正を加えたり加筆を加えながら使ってます。どうやら補完も出来そうです。vimshの凄いのは、シェルを起動していても、他の作業が出…

本日のVimrcいじり

普段は組込みのSchemeを使ってるので、あんまりインタプリタを起動することがないんですが、図形言語もあることだし、Schemeをシェルスクリプト代わりに使っていきたいと思って保存して実行のSchemeバージョン作った。 F5キー押したらとりあえず保存。 Makef…

Haskell mode for Vim

omni補完、ヘルプ、デバッグなどお便利機能満載。Haskell mode for Vimいい感じかも。 激しく使えそうなコマンドが、 :GHCi mainghciで関数mainを作用させられる。 ちょっと面倒なので、~/.vim/after/ftplugin/haskell.vimにをmapしてっと。 function! s:Get…

Vim+MzSchemeでマクロが・・・

もうひとつの懸案事項だったマクロも解決!Vim+MzSchemeでdefine-syntaxやdefine-macroをそのまま使ってしまうと、「トップレベル変更は出来ない」と言われるので、モジュールで囲む。 (module s mzscheme (define-syntax L (syntax-rules () ((_ . args) (la…

Vim+MzSchemeでファイル入出力が・・・

Vim+MzSchemeでファイル入出力時のディレクトリ指定がおかしかったのですが、解決しました。~/.vim/after/ftplugin/scheme.vimあたりに以下を追加。 if has("mzscheme") :mz << EOF (current-library-collection-paths (map (lambda (p) (if (bytes? p) (byt…

Vim上でシェルを動かせるvimsh.vim

Vim

これは便利。Vim上でシェルが動かせる。 vimsh.tar.gz - terminal/shell buffer script for python enabled gvim : vim online +pythonが必要。 使い方がちょっと特殊。source ~/.vim/vimsh.vimという感じで使うのでmapして使う。なんといっても、ウィンドウ…

VimでRand

Vim

Vimにrandがないっぽい。 function! Rand(n) exe 'ruby VIM::command("return #{rand(' . a:n . ')}")' endfunc :echo Rand(1000000000) 118960377returnまで書けちゃった・・・VIM::command強力過ぎる!!Rubyのrandもメルセンヌツイスタと強力。

Vim上でRubyを動かしたい。

Vim上でirbみたいな事が出来たら素敵かなぁと思って、こんなスクリプト作ってみた。 概要 Vim上でのRuby開発を加速させます(たぶん) 組込みRubyを使ってVim上でirbみたいな事ができます。 ノーマルモードで「ctrl + enter」すると、カーソル下の行実行 ビジ…

Vimで大文字小文字変換の動作を変える。

Vim

あ、しまった!!小文字だよ!!って時は、~を使うと大文字、小文字を変換できる。 #define |size 10~~~~ってやると, #define SIZE| 10が、Viper的にありえない感じなので、もうちょっとスマートにいきたいところ。そんな時は、おもむろに:set :set tildeop~w #d…

Hacking Vim欲しい!!

Vim

Vimの本ってなかなか無いんですよね・・・世界中で使われてるグレイトなエディタなのに〜なぜだぁぁぁ!!と思ってたら、でた、でた、でたぁぁぁ〜Vim7本!!(洋書だけど)Hacking Vim: A Cookbook to Get the Most Out of the Latest Vim Editor作者: Kim Schulz…

Vimのちょっとしたマクロ技。

Vim

僕がVimでデバッグするときは、 :!!と、前のコマンド実行をしているんですが、前のコマンドで:「!rm *」なんて事をしていると、ファイルをまるごと消してひどい目にあったりするので、なんか良い手はないかなぁ・・・と思ってたら、「そうだ、マクロがあった…

Vim+MzSchemeのファイル入出力がおかしい。

Vim+MzSchemeのファイル入出力がおかしい。何故かhomeのファイルを開いてしまう。PWDをいじってみたけど変化なし。うぅぅぅ。今の所の対処法は、cd.vimをいじる。 aug CD au! au BufEnter * execute ":lcd " . expand("%:p:h") au BufEnter * let $PWD = exp…

関数の宣言のを自動化したい。

cで面倒なのが、関数を使う前に宣言されてないと使えないって所。関数名変えたり、引数変えたりすると面倒な作業が増えるので、自動化しちゃいたいなぁ・・・と思って、適当に作ってみた。 header ##!/usr/bin/perl my $tags = "tag"; (system("ctags -o $ta…

Vimでシェルのエラーを捕捉

Vim

v:shell_errorで直前に実行したシェルコマンドの戻り値を捕捉出来る。 ってことで、C言語用簡易makeコマンドMakeEasyを修正。F5キーで、保存 → make or gcc → 実行まで一気にこなす。激しく便利っす。 nmap <silent> <buffer> <F5> :call <SID>MakeEasy()<CR> function! s:MakeEasy() " wr</cr></sid></f5></buffer></silent>…

Vimで高階手続き

Vim

Vim7からの機能らしい。:h FuncrefぐへへへSICP読もう・・・。

vimGdbを入れてみた。

Vim

vim+gdbを入れてみた。激しく便利。vimGdb install参考にしたのは、 Wolf & Kiss - Vimgdb インストールと使用法。 A FreeBSD GIMPer vimGdbをいれる。 .vimrcの設定。 慣れるのにちょっと時間がかかるけど、gdbを立ち上げたまま作業出来るのでらくちん。ち…