:help!
結果↓
E478: 慌てないでください!
tipsというよりイースターエッグかな...
TOP_DIR=/usr/inc
まで打って<c-x><c-f>とタイプしてもファイル名が補完されないのは、悲しかったりします。
こんなときには以下の設定をvimrcに入れておくと便利です。
autocmd FileType Makefile setlocal isfname-== isfname+=32
通常、フォルダ名やファイル名に「=」やスペースを使う事はまずありませんし、*unix系の開発を経験された事がある方ならば、スペースが混じってしまう事は一大事になる事もご存知かと思います。
TOP_DIR="C:/Progra
と「"」を先頭にしておく事で補完出来ます。
CFLAGS=-I/usr/inc
とか
LDFLAGS=-L/usr/li
でも補完出来て幸せかもしれません。
<?php
$f = fopen("test.dat", "r");
と「<?php」が開始タグとなります。
autocmd FileType jsp,asp,php,xml,perl syntax sync minlines=500 maxlines=1000
私は上記の設定を使っています。
autocmd FileType python setlocal ts=4 sw=4 sta et sts ai
ただ、まれにスペース2つの人とかもいますから、人のソースを修正する際には向かないかもしれませんね。
nmap <m-x> :
nmap <silent> <c-x>1 :only<cr>
nmap <silent> <c-x>2 :sp<cr>
nmap <c-x>o <c-w><c-w>
cmap <m-x> <nop>
もっとこだわりたい方は、vimacsの方をお勧めします。
function! Class_Prototype() dict
return self
endfunction
function! Class_Override(...) dict
if a:0 == 0|throw "Invalid Parameter"|endif
let class = copy(self)
let class.__NAME__ = a:1
if type(a:2) == type(class.New)
let class.New = a:2
else
let class.New = self.New
endif
let class.Super = self
return class
endfunction
function! Class_New(...) dict
let instance = copy(self)
call remove(instance, "New")
call remove(instance, "Override")
let instance.Super = self
return instance
endfunction
function! Class_ToString() dict
return self.__NAME__
endfunction
let Object = {
\ "__NAME__" : "Object",
\ "Prototype": function("Class_Prototype"),
\ "Override": function("Class_Override"),
\ "Super": {},
\ "New": function("Class_New"),
\ "ToString": function("Class_ToString")}
この状態で
if exists("object")|unlet object|endif
let object = Object.New()
echo object.ToString() . ":..."
とすると
Object:...
と表示されます。
function! Human_Sing() dict
return self.perfix . "は" . self.name . "。" . self.title
endfunction
function! Human_New(...) dict
let instance = copy(self)
let instance.perfix = a:1
let instance.name = a:2
let instance.title = a:3
let instance.Sing = function("Human_Sing")
return instance
endfunction
let Human = Object.Override("Human", function("Human_New"))
とすると、Objectクラスを継承するHumanクラスを定義する事が出来ます。
if exists("human")|unlet human|endif
let human = Human.New("私", "人間", "一般人")
echo human.ToString() . ":" . human.Sing()
とすると
Human:私は人間。一般人
と表示されます。
function! Gian_Boxing(who) dict
return a:who . "のくせに生意気だぞ!!!"
endfunction
let Gian = Human.Override("Gian", {})
let Gian.Boxing = function("Gian_Boxing")
if exists("gian")|unlet gian|endif
let gian = Gian.New("俺", "ジャイアン", "ガキ大将")
echo gian.ToString() . ":" . gian.Sing()
echo gian.Boxing("のび太")
とすると
Gian:俺はジャイアン。ガキ大将
のび太のくせに生意気だぞ!!!
とジャイアンが生成出来ます。このブログを応援する