Hatena::Groupvim

meitetujikokuhyouの日記

|

2008-12-05

窓を分割してみました.

22:49

============
Vim で窓分割
============

下準備
======

1 つの画面で複数の窓を表示するので, 小さくても読みやすいフォントを探します.
`M+`_ の 12 ドットは私には小さすぎたので, `東雲`_ の 14 ドットを選択しました.

.. _M+:   http://mplus-fonts.sourceforge.jp/
.. _東雲: http://openlab.jp/efont/shinonome/

Vim の設定
==========

.vimrc::

  nnoremap <silent> <c-l> <c-w>l:call WinResize()<cr>
  nnoremap <silent> <c-h> <c-w>h:call WinResize()<cr>
  nnoremap <silent> <c-j> <c-w>j:call WinResize()<cr>
  nnoremap <silent> <c-k> <c-w>k:call WinResize()<cr>
  nnoremap + 4<c-w>+
  nnoremap - 4<c-w>-
  nnoremap { 4<c-w><
  nnoremap } 4<c-w>>
  nnoremap = <c-w>=
  AlternateCommand vbn vert<space>sbn
  AlternateCommand vbp vert<space>sbp
  AlternateCommand vh  vert<space>h
  fun! WinResize()
    let min_width  = 80
    let min_height = 24
    exec "vert res ".max( [winwidth(""), min_width])
    exec "res ".max( [winheight(""), min_height])
  endf

マスターに教えてもらった AlternateCommand (`ここのコメント`__) を使って横分割
の :sbn, :sbp, :h に対して, 縦分割の :vbn, :vbp, :h を設定.  それから, 操作窓
は 80 x 24 欲しいので, 窓移動と同時に大きさを変更する.

.. __: http://vim.g.hatena.ne.jp/meitetujikokuhyou/20081201/1228140351

ka-nachtka-nacht2008/12/06 13:56:AlternateCommandは組み込みのExコマンドを自作のコマンドで置き換えたい場合において後者の入力を補助すること目的なので、その用法はそれはそれで間違ってはいませんが、少々ずれてますね。
(例えば:cdを:MyCDで置き換えたいけど入力は:cdで行いたい場合)

> AlternateCommand vbn vert<space>sbn
このようなことをするのであれば最初から独自のコマンドを作るべきです(:help :command)。例えばこれでは補完が利きません。
それにこのような省略しきった名前を付けるのであれば、ExコマンドでなくNormal modeで適当なキーを割り当てた方が良いでしょう。
例: :nnoremap <C-w>vbn :<C-u>vertical sbnext<Return>

> WinResize()
:help 'winheight'とその他色々

meitetujikokuhyoumeitetujikokuhyou2008/12/08 00:04>:help 'winheight'とその他色々
& :h 'winwidth'. 嗚呼なんて簡単なことだったんだ. また無駄なことを orz

>例えばこれでは補完が利きません
com! -nargs=? -complete=help Vh vert h <args>
とかしてみました. com 使ったことなかったんですが -nargs, -complete が便利そうですね. 使ってみます.

LakieshaLakiesha2011/07/09 16:51Always the best content from these prodigious wierrts.

LakieshaLakiesha2011/07/09 16:51Always the best content from these prodigious wierrts.

sebfrlqabjsebfrlqabj2011/07/10 00:17xzsbtL <a href="http://msssfgyglxyx.com/">msssfgyglxyx</a>

nvagpwnxpnvagpwnxp2011/07/10 20:44qRA4DH , [url=http://izkepoqzwajl.com/]izkepoqzwajl[/url], [link=http://svjjgzuxmhuf.com/]svjjgzuxmhuf[/link], http://jcfdtxsemczc.com/

nmkwdldakmsnmkwdldakms2011/07/11 20:12sonpaW <a href="http://vrkzvxbdtwko.com/">vrkzvxbdtwko</a>

vhstzkvhstzk2011/07/12 22:01lSOTK6 , [url=http://mhlsaqldprnj.com/]mhlsaqldprnj[/url], [link=http://qnctubcmysro.com/]qnctubcmysro[/link], http://eccwwepsmnfg.com/

JayceeJaycee2013/03/02 19:04Economies are in dire srtatis, but I can count on this!

xivjvjepuxivjvjepu2013/03/04 16:48k5w9NF , [url=http://xcxmwveryriu.com/]xcxmwveryriu[/url], [link=http://txjqvhtwsaep.com/]txjqvhtwsaep[/link], http://svpadjldechp.com/

2008-12-04

タブその後

20:45

==========================================
:e で :e だったり :tabe だったりにしてみた
==========================================

AlternateCommand を教えてもらったので, それを参考にして :e でバッファにファイル
を読み込んでないときは :e, 読み込んであるときは :tabe にしてみた::

  cab e <c-r>=(getcmdtype() == ":" && getcmdline() == "" && bufname("")!="" ) ? "tabe" : "e"<cr>
  AlternateCommand tabe! edit!

たたタブについては

  1つのtabpage内で複数のwindowを扱えるという点を活かさないと勿体無いと思います。

と達人の指摘なので, 窓分割も使いこなせると便利なのでしょう.  今まで :h やスクリ
プトや :diffsplit が勝手に分割してくれたことしかなくて, 自分で使ったことがない
のだけど.  アンチエイリアスの効いた 15pt の綺麗なフォントを 15inch モニターで使
ってると窓分割どころじゃないのだけど, IPA のビットマップフォントでも使ってみよ
うかなあ.

.. vim: ft=rst:

AdansAdans2012/11/26 02:01If you want to get read, this is how you sholud write.

pifiasooxgpifiasooxg2012/11/30 02:18Y9GaDv <a href="http://bnplzxqnekjt.com/">bnplzxqnekjt</a>

vvbfdzcvjvvbfdzcvj2012/11/30 11:211LAL76 , [url=http://ehmtpjxvvsxo.com/]ehmtpjxvvsxo[/url], [link=http://mpmyughbipco.com/]mpmyughbipco[/link], http://uvitbimbiebk.com/

dwivkcadwivkca2012/11/30 19:09CDYJHU <a href="http://razmksnkkajf.com/">razmksnkkajf</a>

2008-12-02

知らないことだらけです (入力補助と苦手な式)

22:26

==================
入力補助と苦手な式
==================

”” とかで括る
=============

今更なんですが, v や V しておいた部分を ”” などで括る方法です.  ちゃんと :h
visual-examples に例文がありました. ::

  vmap \" <esc>`>a"<esc>`<i"<esc>

式のくせに if then else
=======================

式 1 ? 式2 : 式3 てやつです.  なんと :h expression-syntax で一番目の式です. ::

  nmap \r :set syntax=<c-r>=( &syntax=="off" ? &ft : "off")<cr><cr>
  nmap ,m :set mouse=<c-r>=( &mouse=="c" ? "a" : "c" )<cr><cr>

これを知る以前はいちいち fun! を使ってたのですが一行ですっきりするのが良いとこ
ろでしょうか. 

.. vim: set ft=rst:

KritikaKritika2012/11/27 14:45Posts like this make the internet such a terasrue trove

yftzsttkgyftzsttkg2012/11/30 03:17k2KnKH <a href="http://wxfuggdcjzlq.com/">wxfuggdcjzlq</a>

ekmbmpjvkekmbmpjvk2012/11/30 12:16TC8YkN , [url=http://vnofkfrnpqvt.com/]vnofkfrnpqvt[/url], [link=http://ftxqiarwkhjf.com/]ftxqiarwkhjf[/link], http://velkxodqqrhl.com/

uwtesgqguwtesgqg2012/11/30 19:57VpdEc8 <a href="http://gzbhdfxxwium.com/">gzbhdfxxwium</a>

qsxmvjurcfqsxmvjurcf2012/12/01 01:307rY3lR , [url=http://sdageuobtrxk.com/]sdageuobtrxk[/url], [link=http://haabvxsckooy.com/]haabvxsckooy[/link], http://xneiywirkpgx.com/

2008-12-01

VST で簡単にアンダーラインを引けるようにしてみた

01:16

====================
アンダーラインを引く
====================

VST_ は見出しでアンダーラインを引くので、見出し文と同じ長さの
アンダーラインを引くコマンドをやってみる。

.. _VST: http://www.vim.org/scripts/script.php?script_id=1334

nmap だけでやってみる
=====================

::

  nmap \= :normal O<cr>:normal 0d$<c-r>=(virtcol([line(".")-1,"$"])-1)<cr>i=<cr>
  nmap \- :normal O<cr>:normal 0d$<c-r>=(virtcol([line(".")-1,"$"])-1)<cr>i-<cr>
  nmap \^ :normal O<cr>:normal 0d$<c-r>=(virtcol([line(".")-1,"$"])-1)<cr>i^<cr>

function 使って見る
===================

::

  fun! UnderLine(char)
    ""{{{
    let s:num=virtcol([line(".")-1,"$"])-1
    let @k=a:char
    normal O
    normal 0d$
    exec "normal ".s:num.'"kp'
    ""}}}
  endf

.. vim: set ft=rst:

タブ 続き

23:05

set showtabline=2

ca h tab h

mat <c-t> :tabnew<cr>

くらいかな。

ca e tabe

としたら、e! がやりにくいのでやめた

ka-nachtka-nacht2008/12/02 00:51それでやると色々と痛い目を見るので下記のAlternateCommandなどを参考にしてください。
http://github.com/kana/config/tree/master/vim/dot.vimrc

meitetujikokuhyoumeitetujikokuhyou2008/12/02 01:44AlternateCommand h tab_h, AlternateCommand e tabe で :tab h h も : e! も出来ました。<tab> を何度も打つしかないとあきらめてたのに、ありがとうございます。

2008-11-30

bufferexplorer に替えてタブを使ってみた

15:24

==================
Vim のタブの使い方
==================

タブの便利な所
==============

バッファを保存しなくても切りかえられるところ. 


コマンド
========

=============  ================================
コマンド       動作
=============  ================================
:tabedie       ファイルをタブで開く
:tabclose      タブを閉じる
:tabonly       他のタブを閉じる
:tabnext       次のタブに移動
:tabprevious   前のタブに移動
:tab command   command を新しいタブで実行
:tab sball     開いているバッファ毎にタブを開く
=============  ================================

map
===

::

  " tab 操作
  nmap <c-h> :tabp<cr>
  nmap <c-l> :tabn<cr>
  nmap <c-o> :tabe 
  " バッファ毎にタブで開きなおす. ごちゃごちゃした時用
  nmap <f5>  :only<cr>:tabo<cr>:tab sball<cr>

Link
====

Vim_

.. _Vim: http://www.vim.org/
.. vim: ft=rst

ka-nachtka-nacht2008/11/30 22:55> バッファを保存しなくても切りかえられるところ.
:help 'hidden'

> :tabedie
:tabedit

> nmap <c-h> :tabp<cr>
nnoremap <C-h> gt
nnoremap <C-l> gT

> nmap <f5> :only<cr>:tabo<cr>:tab sball<cr>
nnoremap <F5> :<C-u>tabonly <Bar> only <Var> tab sball<Return>

meitetujikokuhyoumeitetujikokuhyou2008/12/01 20:47'hidden' 知りませんでしたが良いですね。
いつもありがとうございます。

|