■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 最新50

vim6

1 :名無しさん@お腹いっぱい。 :2001/05/25(金) 13:18
vim-6.xに関する専門的スレッドです。

217 :名無しさん@お腹いっぱい。 :2001/07/11(水) 12:02
>>215
日本語ならrot47でないですかね。:%!nkf -r

218 :名無しさん@お腹いっぱい。 :2001/07/11(水) 17:31
>>217
んで、両方組み合わせて rot13/47 といわれています。

219 :KoRoN :2001/07/11(水) 19:35
Rot47ってJISコードでのコード変換ですよね。
euc-jpのUNIXならスクリプトで簡単に書けそうですけど、
WinのSJISも視野にいれるなら>>217さんの示すようにnkfでフィルタした方が
素直でしょうね。

220 :名無しさん@お腹いっぱい。 :2001/07/11(水) 23:56
J で行連結をしたとき半角空白を挿入したくないのですが、
設定できますか?

221 :KoRoN :2001/07/12(木) 07:52
>>220
gJを使ってください。

222 :  :2001/07/14(土) 13:04
vim-6.0anが出ましたね。

223 :KoRoN :2001/07/14(土) 14:50
6.0anにはGTK GUI版で'imactivatekey'を.gvimrcで設定すると落ちる、
というバグがあります。希望者が居たら修正パッチを公開します。
# なんかすぐにaoがでそうな気もしますね。

224 :  :2001/07/14(土) 15:14
GUIを使わない分では、大丈夫だと思いますよ。
ここまで来ると、修正も小さなものばかりで正式版のリリースが近づいて
いると感じる次第です。

225 :224 :2001/07/14(土) 15:16
>>223
UNIXバージョンのvim6は、結構安定しているのではないかと。
Windows版を使ったことないですけどね。

226 :名無しさん@お腹いっぱい。 :2001/07/14(土) 19:04
どちらも愛用させていただいておりますが、
非常に安定しておりますよ。

それはそうと、vimには、
某emacsのような、機能ごった煮にはなって欲しくないですね。
今くらいの機能があれば十分な気がしますし。

227 :名無しさん@お腹いっぱい。 :2001/07/14(土) 19:07
>>226
じゃあ、edつかえよ

228 :名無しさん@お腹いっぱい。 :2001/07/16(月) 17:24
VIM 5.8 から VIM 6.0 に変えてみたら、コメント行で改行すると
勝手に次行もコメント行となるように、コメント文字を追加される様に
なってしまいました。

ヘルプから探してみましたが、キーワードが見当も付かず、
見付けられませんでした。

この機能を無効にするにはどうしたら良いのでしょう?

# ~/.vimrc いじってたら突然 zc も効かなくなるし……。

229 :名無しさん@お腹いっぱい。 :2001/07/16(月) 18:26
age

230 :KoRoN :2001/07/16(月) 19:06
>>228
vim6に始まったことではありませんが'formatoptions'で設定できます。次のようにしてみて下さい。
:set formatoptions-=r

231 :228 :2001/07/16(月) 19:09
>>230
thx

source /usr/local/share/vim/vim6*/vimrc_example.vim
しないようにしたら解消されました。鬱。

# zc が出来ないのは変わらない……最初はできたのにな。
# もうちょっと試してみよう……。

232 :名無しさん@お腹いっぱい。 :2001/07/18(水) 21:32
今日もterminalでjjjjj...

233 :KoRoN :2001/07/18(水) 21:37
私、今日はkkkkkkでした(T-T)

234 :名無しさん@お腹いっぱい。 :2001/07/18(水) 21:40
端末上でもbashとかtcshとかzshとかでは、viバインドに
できるぞ。。。ためしてみそ。

235 :名無しさん@お腹いっぱい。 :2001/07/18(水) 23:46
Ed - The Standard Text Editor
http://www.red-eagle.com/jokes/ed.html

236 :名無しさん@お腹いっぱい。 :2001/07/18(水) 23:55
>>235
よくこんなネタページ見つけてきたな。すごい情報収集能力だ。
特に
Of course, on the system *I* administrate, vi is symlinked to ed.
Emacs has been replaced by a shell script which 1) Generates a syslog
message at level LOG_EMERG; 2) reduces the user's disk quota by 100K;
and 3) RUNS ED!!!!!!

ED IS THE TRUE PATH TO NIRVANA!
は天才的だ。

237 :名無しさん@お腹いっぱい。 :2001/07/19(木) 00:15
>>235
その手のJokeが一杯〜(笑

238 :235 :2001/07/19(木) 01:31
実はうけうりっす。
http://www.sigmasoft.com/~openbsd/archive/openbsd-misc/199909/msg00606.html

nvi と emacs 使ってるけど、最近の vim の拡張ぶりを見ると
emacs 見たいに常時立ち上げてないと使えないエディタになりそーだなと
一人で無駄な心配してみたり。
ところで各 pc-unix で、core 又は commiter の方の
vi と emacs ユーザの割合ってどんなんなんだろう。
netbsd core の方は全員 vi ユーザっぽいですね。

239 :名無しさん@お腹いっぱい。 :2001/07/19(木) 10:27
>>238
FreeBSD の日本人 commiter のうち、とりあえず 2 人は Emacs なのは確認

というか、メーリングリストの過去ログみると、
軒並 Wanderlust や Mew、一部 mh-e on Mule って感じ

vi 使いも知っているけど、そこまで書くと知っている人には
私が誰だかばれてしまうので勘弁

# 知っている vi 使いは commiter ではないですけど

240 :名無しさん@お腹いっぱい。 :2001/07/19(木) 11:00
日本人のハッカーにEmacs使いが多いのは、単に、Emacs
でははやくから日本語まわりのサポートがMuleで充実
していたから、という歴史的な理由にすぎないと思うんだが。

241 :KoRoN :2001/07/19(木) 11:59
>>240
なるほど!!。妙に納得してしまいましたが…
ということは海外のハッカーはviとEmacsが半々ということになるのでしょうか?

242 :235 :2001/07/19(木) 14:11
openbsd では7割ぐらいが vi な気がするな。
dugsong, markus, aaron, truman など。
ただボスが emacs だなー。
deraadt, todd, provos(xemacs), obecian.
なぜか気になってしまう。
netbsd core の lukem, itojun 氏は重度な vi ユーザだと
見受けられる。
7j4lcwcreat[ESC]
さすがにすぱーはかーでも ED ユーザはいないようですね。残念。

243 :名無しさん@お腹いっぱい。 :2001/07/19(木) 14:37
>>242
4l -> fcだな

244 :名無しさん@お腹いっぱい。 :2001/07/19(木) 19:00
vi 好きな人は日本語メールも vi 系なの?
どんな editor/im の組み合わせで書いてんの?
不便に思うことはないの?

245 :名無しさん@お腹いっぱい。 :2001/07/19(木) 19:06
>>244

私は Sylpheed で外部エディタに VIM

246 :名無しさん@お腹いっぱい。 :2001/07/19(木) 21:36
mh.
lukem, itojun mo mh tukatteruyo.

247 :名無しさん@お腹いっぱい。 :2001/07/19(木) 22:16
>>244
mnews + jelvis
チョーチョーチョーチョーイイカンジ!

248 :KoRoN :2001/07/20(金) 03:33
Outlook Express(笑)

249 :名無しさん@お腹いっぱい。 :2001/07/20(金) 07:53
>>248
ワラタ

かく言う俺もEdMax(藁

250 :名無しさん@お腹いっぱい。 :2001/07/20(金) 16:57
OEかぁ
WinならBecky!2がお勧めって感があるけど、
EdMaxも人気高いから謎。

251 :KoRoN :2001/07/20(金) 18:24
デフォルトで入っているものを使ったほうが、新しい環境で作業するときに都合が良かったのです。
OEは色々おせっかいなこともしてくれますが、機能は決して他のソフトウェアにひけをとりませんから使い物になっています。

…エディタはメモ帳ではどうにもならないのでvimをインストールします。
vimのバイナリを配布しているのは自分が新規の環境に移った時に、すぐにダウンロードしたいがタメなのです。

252 :名無しさん@お腹いっぱい。 :2001/07/20(金) 22:58
使い方の練習をしなければならないエディタと、
使うための設定ファイルを書かなきゃ使い物にならないエディタ。
UNIX系OSは、これらが2大エディタなんですよね・・・

私は最初Mac(笑)だったので、比較的触りやすい後者から入りましたが、
何となく、jvimのチュートリアルで訓練して以来、前者にはまっております。

カスタマイズが意外とだりぃ、とか思う人は私だけではないはず?

253 :名無しさん@お腹いっぱい。 :2001/07/20(金) 23:23
>>252
>使い方の練習をしなければならないエディタと、
>使うための設定ファイルを書かなきゃ使い物にならないエディタ。
なるほど、良い言葉だね(いや、素でな)
まぁ、長く使ってても初心者と同じような使い方しか出来ないエディタよりは良いね(笑

使い方覚えるのは良いが、カスタマイズはダリィな
他所行った時に困るんで、なるべくデフォで使うようにはしてるが・・・

254 :名無しさん@お腹いっぱい。 :2001/07/21(土) 00:17
>他所行った時に困るんで、なるべくデフォで使うようにはしてるが・・・

他所行った時に困るんで、vim は使わない。
あれに慣れると素の vi を使うときに困る。

255 :名無しさん@お腹いっぱい。 :2001/07/21(土) 00:23
ところで、vimって「ビ〜ム」って発音するの?

256 :253 :2001/07/21(土) 00:27
>>254
すまん、ソース書くときだけは vim使ってる(^^;

# ヴィムかねぇ?

257 :名無しさん@お腹いっぱい。 :2001/07/21(土) 00:43
おれもvim使ってる。
もちろんvi互換モードで。
読みはヴィムがしっくりくるかも。

258 :名無しさん@お腹いっぱい。 :2001/07/21(土) 04:20
>>254

サーバサイドで作業する時はいつも vi で作業してるから、
あまり気にならないな

「う、VIM じゃなかった」はよくやるけど

レンタルサーバで vi が elvis だったときは HTML を
ちょいと書き換えようとしてショックを受けたが

vim 入ってたから alias vi vim したけど

259 :名無しさん@お腹いっぱい。 :2001/07/21(土) 09:38
いいんだよ、>>254のようなやつは、Vimもつかわず、vi使って
sh使って、PerlもAwkもつかわずにsedでも使ってれば。

260 :Sol8厨房 :2001/07/21(土) 12:00
まぁまぁ、マターリしませう

>>KoRoNさん、gVim-6.0an(α)落とさせてもらいました。
早速自宅のSolarisで使ってみます。

#LaTeXでサークルのレジュメ作ってます

261 :ゲイツの側近キボンヌ :2001/07/21(土) 12:35
あのさぁ、さっきからROMってたんだけどぉ、
フォントとか自由かつ手軽に変更できて、見栄えのいい
M$-Wordが一番いいと思いますが?

何でそんなに苦労して使うのかねぇ。

>>260
ブヒャヒャヒャヒャLaTeXで書類作ってンの?
Word, Excelが基本だろが>逝ってよし

262 :名無しさん@お腹いっぱい。 :2001/07/21(土) 12:48
Wordがいいかどうかはともかく、LaTeXで書くくらいならHTMLで書くとか
DocBookで書くとか選択肢は他にありそうなもんだが。

263 :名無しさん@お腹いっぱい。 :2001/07/21(土) 13:05
>>262
いや、数式がもっとも綺麗に出るのはLaTeXだろ。Wordの数式なぞ
くそだぞ。それ以外の利点というのは、好きなエディタ使って
かけることだろ。

別にWordがクソだとは思わないけどな。

264 :名無しさん@お腹いっぱい。 :2001/07/21(土) 13:09
>>235
それ emacs の etc/JOKES に入ってるよ。
vi 使いの人は知らないだろうけど

265 :名無しさん@お腹いっぱい。 :2001/07/21(土) 14:21
>>262
HTML書くくらいなら、LaTeX2HTMLに通したほうが楽じゃない?

266 :名無しさん@お腹いっぱい。 :2001/07/21(土) 17:59
>>265
激しく同意。

>何でそんなに苦労して使うのかねぇ。
俺は苦労しなくてもTeX使えるから問題ないね。
つか、Wordでvim使えるん?(vimでWordか?)
ここはvimスレよん。

267 :名無しさん@お腹いっぱい。 :2001/07/21(土) 21:14
Wordは簡易DTPソフトとしては悪くない。
でもその目的ならむしろ一太郎の方が向いているが(特に罫線周り)。
ポスターだの何だのはワープロソフトだろ。

268 :名無しさん@お腹いっぱい。 :2001/07/21(土) 23:57
>>261

HTML でも C++ でも Perl でも (略) 色付いてくれるのが楽だからなぁ
というか、カーソルキーやマウス使わないと辛い環境は嫌だな

てか、Word ってエディタじゃなくてワープロ
比較対象が根本的に違うよ

269 :ゲイツの側近キボンヌ :2001/07/22(日) 00:04
ちっ、ここは分が悪い。煽りも並大抵じゃ太刀打ちできんな
ひとまず退却だ(コソコソ

270 :名無しさん@お腹いっぱい。 :2001/07/22(日) 01:24
質問ですが、起動時の「ウガンダの云々」ってのは消せませんか?
うざいんですが。

271 :名無しさん@お腹いっぱい。 :2001/07/22(日) 02:20
>>268
C言語の入門でLet's C(と言う処理系が昔あったのだ)付属のMicroEmacsが使いづらくて
一太郎Ver2を使ってました(苦笑>当時エディタというものを知らなかった

あの時vi系のFreeなエディタを添付してくれたら嬉しかったかも>パーソナルメディア

272 :KoRoN :2001/07/22(日) 04:44
>>270
vimrcにset shortmess+=Iを書き加えてください。
詳しくは:help :intro

273 :270 :2001/07/22(日) 08:39
わ、KoRoNさん直々にありがとうございます。
いえ、メッセージの趣旨は理解できるんですが、何回も出てくると・・
と思ったので。

274 :名無しさん@お腹いっぱい。 :2001/07/22(日) 08:50
hackerがドキュメント書くってtextかroffかhtml位の気がするなぁ。
Unixってtext文化だし。

# 10年位前はfinとかntfなんてのもあったね。ntfはまだたまに使っ
# てるけど

275 :名無しさん@お腹いっぱい。 :2001/07/22(日) 10:58
XML 嫌いの人はあんまり聞く耳もたないかもしんないけど(と言いつつ、俺も最
近まで Unix 上でなかなか使いもんにならないから嫌いだった)、Gnome 方面で
かなり完璧に近い libxslt がリリースされたので、文書を XML で書く意味が出
てきたと思うよ。今のところ EUC-JP でも使えてる(ように見える)し。
http://xmlsoft.org/XSLT/ 参照。FreeBSD な人は ports/textproc/libxslt。

先週、DocBook で文書を書いて、それを HTML/LaTeX に変換する XSLT を書いて
libxslt に同梱の xsltproc で変換する、ってことをやってみたんだけど、もう
充分すぎるくらい実用になると思う。(まあ XSLT 自体の是非はおいといて)
多分もう LaTeX、TexInfo、[X]HTML あたりを直で書くことは無いと思う。変換規
則は自由にカスタマイズできるから数式の部分だけ TeX 記法にしてそのまま渡す
のも簡単だし。Word で使える文書を自動生成なんてこともできるようになるんじ
ゃないのかな? 確か FreeBSD 本家の Doc チームも DocBook だっけ?

# 欠点: 今の快適さは psgml-mode にかなり依存しているので、emacs 嫌いな人
#    にとっては「役に立たない道具」かもしれない

276 :名無しさん@お腹いっぱい。 :2001/07/22(日) 11:29
>>275
おもろい。
その手のスレ立てようか?

277 :KoRoN :2001/07/22(日) 13:47
直接vimではないのでsageで失礼。

>>273
実際、私も寄付したことありませんし(藁)。
ただ私にとっては起動してこれが出てないとちょっと寂しい。
これで:helpの使い方を知った口なので。

>>275
個人的にXMLとXSLTには非常に興味があったので参考になりました。
いまやってるFF10が片付いたら(藁)遊んでみます。

278 :名無しさん@お腹いっぱい。 :2001/07/23(月) 01:50
Windows 版つかってて UNIX 板で質問をするのは気が引けるが、
gvim -d file1 file2
ってやって diff しようとしても
「差分を作成できません」というエラーメッセージが出て diff できない。
しかもその後 gvim 起動したディレクトリに c という名前の 0 バイトのファイルができる。
何がどうなってるの?

279 :KoRoN :2001/07/23(月) 01:56
>>278
vimdiff(-d)は外部のdiffを起動しています。
よってcygwinなどのdiffを別途インストールしてパスを通しておく必要があります。
cygwin以外にもWinで動くdiffは幾つかあったと思います。
http://www.cygwin.com/

280 :名無しさん@お腹いっぱい。 :2001/07/23(月) 04:33
vim script で visual モードで選択中の文字列を
取得するのはどうすればよいですか?

281 :名無しさん@お腹いっぱい。 :2001/07/23(月) 06:54
>>280
normal! y

282 :KoRoN :2001/07/23(月) 08:56
>>280
スクリプトに入る前にyで@"に選択内容を入れておく方法がひとつ。
ただしこの場合、ビジュアルモード以外からのスクリプト呼出が難しくなります。
例:
function! GetVisualSelect()
return @"
endfunction
vnoremap! <F2> y:echo GetVisualSelect()

あとはline()とcol()に"'<"と"'>"を渡してスクリプトで頑張る方法しかわかりません。
getline()してvisualmode()の値に応じてstrpart()で部分的に切り出すというのが基本方針です。
こっちはnormalからでも動くのですけど、visual block時にマルチバイト文字を正しく扱うのが一苦労です。

283 :280 :2001/07/23(月) 16:03
>>281,>>282
Thank you.
うまいこと取得できたよ。
ところで、もうひとつ質問だけど
map のあとに変数か何かをもってきたいんだが展開されずにそのまま解釈されてしまう。

:map <F5> ":so " . script_dir . "test.vim"

ってしたら無効なマークがどうとか言われたよ。展開して欲しいんだが。
もひとつ、

:map と :map! って何が違うの?英語読めなくてスマソ。

284 :名無しさん@お腹いっぱい。 :2001/07/23(月) 16:06
>>283
>map のあとに変数か何かをもってきたいんだが展開されずにそのまま解釈されてしまう。
execute 使ってみ。

>:map と :map! って何が違うの?英語読めなくてスマソ。

まず :h map! して、読む努力してみましょう。;-)

285 :名無しさん@お腹いっぱい。 :2001/07/23(月) 16:11
>>284

:h map!より :h map-modesのほうがわかりやすい。スマソ

286 :名無しさん@お腹いっぱい。 :2001/07/23(月) 19:16
LaTeXの話が少々出たので、ついで話なのですが、
LaTeXって、少なくとも大学の工学部では使われております。

数式などがきれいに出力されるのはうれしいのですが、
あのシステムは、既に古いものだと感じております。
データの再利用などが面倒ですし。

時代は>>275のヤツか?

287 :KoRoN :2001/07/23(月) 20:06
>>286
XMLで書いてXSLTでLaTeXに変換できたら最高だな、って考えてます。
あの印刷出力の良さは他に変わるものを思いつきません。

288 :名無しさん@お腹いっぱい。 :2001/07/25(水) 02:44
Windows 版の話で申し訳ないが(っていうかこのスレッドってソフトウェア板にあるべきだよなぁ)
日本語だけ MS ゴシック、ASCII 文字列は別のフォントを使いたいんだができる?
guifontwide,guifontset あたりがくさいということは分かっているんだが…

289 :KoRoN :2001/07/25(水) 08:52
>>288
guifontsetはXでの(x)fontset用です。guifontwideはeucがutf-8の時しか使えないよ
うです。微妙におかしいのだけど次のような方法で、マルチバイト文字(漢字)だけ
フォントを変えることができます。

highlight MBChar font=MS_明朝
syntax match mbcharString display "[^ -~]\+"
highlight def link mbcharString MBChar

カーソルが重なった部分や、Visual Selectした部分のフォントが戻ってしまうのは
許してください。Cのコメント部分やらなんやらにかぶると、デフォルトフォントが
使われてしまうんですけど…まぁ、探せば何か設定があると思います。

290 :KoRoN :2001/07/25(水) 13:26
>>289
>guifontwideはeucがutf-8の時しか使えないようです。

ごめんなさい。間違えました。誤:'euc'→正:'enc'です。鬱氏。

291 :288 :2001/07/25(水) 15:51
>>289
回答ありがとう。
う〜む、やっぱ正式にサポートというわけじゃないんですね。

もうひとつ質問。
vim6.0 でソートをしたいんですが、できますか?

292 :KoRoN :2001/07/25(水) 17:35
>>291
:he eval-examples
にある2つ目の例が行ごとのソートです。
visual selectして:Sortでソーティングできます。

293 :288 :2001/07/25(水) 19:13
>>292
うおおお〜、マジありがとう。
コマンドって定義できたのね。ホント毎度助かります。
これからもよろしく(笑)。(できる限り調べるが)

294 :あー :2001/07/25(水) 23:31
全く関係ないアプリなんだが、文字コードが上手くいかないと思ったら
enc と euc を間違ってた。
これ、紛らわしいよね

295 :288 :2001/07/26(木) 01:48
2つほど質問

dictionary に

font-family
background-image

とか記述してあるんだけど
辞書補完しても font , background みたいに - 以降を補完してくれません。
補完できるようにできますか?

ビジュアルブロックモードの時だけ
:set virtualedit=all
にしたいけどできますか?

296 :KoRoN :2001/07/26(木) 08:50
>>295

> 辞書補完しても font , background みたいに - 以降を補完してくれません。
> 補完できるようにできますか?

オプション'iskeyword'に'-'を追加します。
setを使って全部を設定しなおすのも「手」ですが、
letを使えばこんな感じで追加できます。。
:let &iskeyword = &iskeyword . ",-"

> ビジュアルブロックモードの時だけ
> :set virtualedit=all
> にしたいけどできますか?

:help virtualedit
してみましたか?
:set virtualedit=block
が幸せにしてくれるでしょう。

297 :288 :2001/07/26(木) 10:35
>>296

> :help virtualedit
> してみましたか?

かなり恥ずかしい質問してたみたいだね。:h visual-block でしか調べてなかったです。

> オプション'iskeyword'に'-'を追加します。
> setを使って全部を設定しなおすのも「手」ですが、
> letを使えばこんな感じで追加できます。。
> :let &iskeyword = &iskeyword . ",-"

うまくできました。ありがとう。
set iskeyword+=-
でもいいんだよね?

298 :288 :2001/07/26(木) 10:37
↑:set iskeyword+=-
: が抜けてました

299 :KoRoN :2001/07/26(木) 11:50
>>295-298
失礼。試したときに+=,-としてできなかったので。
ただletを使うテクニックは他のオプションに応用できるので、覚えておいて損はないです。

300 :名無しさん@お腹いっぱい。 :2001/07/26(木) 21:35
Lispとかは知らないけど、激しくマイナーな関数型プログラミング言語の
Haskellを、試しにctagsしてみたところ、
何も作られませんでした(涙)
いや、べつにいいんだけど、マイナー言語を触って喜ぶ自分に気づいた…
気づかせてくれてありがとう>ctags

301 :KoRoN :2001/07/26(木) 22:11
うぉ。haskellとはまた渋いところを…いっそこの機会にhaskell用のctags定義を書いてみるというのはどうでしょう?(藁

haskellを知らない人はこちらをどうぞ。
http://haskell.org/

302 :名無しさん@お腹いっぱい。 :2001/07/26(木) 22:17
技術板にhaskellスレがたったよ。
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=996131288

303 :300 :2001/07/26(木) 23:16
>>302
私が建てた説(爆)

304 :名無しさん@お腹いっぱい。 :2001/07/27(金) 06:26
何故突然Haskell話に(藁

305 :名無しさん@お腹いっぱい。 :2001/07/27(金) 18:46
何度もHaskell話で申し訳ない(wara
*.lhsファイル(*.hsとは違ってシェルから動かせるヤツ?)の
syntaxがおかしい、とかエラーを返されたような。
寝ぼけていたので良く覚えていませんが…?
再現性あったら報告しますね。

306 :名無しさん@お腹いっぱい。 :2001/07/28(土) 01:37
vim スクリプトの setline() てすごく便利なんですけど
これと似たような関数で文字列をバッファに挿入する関数ってないですか?

307 :KoRoN :2001/07/28(土) 07:49
>>306
:he append()っていうことでお願いします。
{lnum}に0を指定すれば先頭行に挿入できます。

308 :306 :2001/07/28(土) 11:54
>>307
ありがとう。

もうひとつお願い。
vim script で配列ってどうやって使うの?
eval.txt 見ても "string"[num] で char を返すとかしかなかったし、、、
普通に C みたいに配列を使いたいのだけど

309 :KoRoN :2001/07/28(土) 13:18
>>308
vim scriptに配列を扱う機能はありません。しかしエミュレートすることは可能です。
1つはScratchバッファ(:set bt=nofile)を配列代わりに使う方法。
もう1つは下記に示すようなスクリプトを使う方法です(:help cury-brace-names)。

後者の場合、連想配列も同時にエミュレートできます。
ループで回したい等の場合にはもうちょっと工夫が必要になりますが、
用途によって工夫の仕方が違ってくるので、それは自分でやってみてください。

function! SetArrayValue(name, index, value)
let {a:name}_{a:index} = a:value
return a:value
endfunction

function! GetArrayValue(name, index)
return {a:name}_{a:index}
endfunction

310 :306 :2001/07/28(土) 14:14
>>309

返答ありがとう。ただ、自分のやりたかったことが配列必要かと思ってたけど、
配列使わなくてもできてしまった。ちょっとした文字列の操作に配列のようなものは
使わずに済ませられるみたいですね。

因みに HTML でテーブルを生成するスクリプト書いてました。↓table.vim

311 :306 :2001/07/28(土) 14:16
" 使い方
" セルの中身を1行につき一つずつ書き並べる
" (注:表の左から右、上段から下段に向かって書き並べる)
" (このファイルを :source して):Table X Y で横 X 縦 Y の表が完成する
"
" 例:
"
" A ← ここで :Table 3 2 で
" B
" C
" D ↓ こうなる
" E
" F
"
" <table>
" <tr><td>A<td>B<td>C
" <tr><td>D<td>E<td>F
" </table>
"
function! Maketable( table_x, table_y )
let tx = a:table_x
let ty = a:table_y
if ( tx <= 0 || ty <= 0 )
echo "引数は自然数でなくてはなりません"
return 0
endif
let curline = line( "." )
let line_number = line( "$" )
if( line_number < curline + tx * ty - 1 )
echo "指定が EOF を超えています"
return 0
endif
let ty2 = 0
while( ty != ty2 )
let tx2 = 0
let tdstr = "<tr>"
while( tx != tx2 )
let addtdstr = getline( curline + ty2 * tx + tx2 )
let tdstr = tdstr . "<td>" . addtdstr
let tx2 = tx2 + 1
endwhile
call setline( curline + ty2, tdstr )
let ty2 = ty2 + 1
endwhile
call append( curline - 1, "<table>" )
let curline = line( "." )
call append( curline + ty2 - 1, "</table>" )
if( tx > 1 )
exe "normal! " ty + 1 . "j"
exe "normal! " tx * ty - ty . "dd"
endif
endfunction
command! -nargs=* Table call Maketable(<f-args>)

312 :名無しさん@お腹いっぱい。 :2001/07/28(土) 20:58
migemo使いたいなー。

313 :名無しさん@お腹いっぱい。 :2001/07/29(日) 01:51
gvim6.0 使っているが、正規表現でマルチバイト文字ってどうやって表現すればよいの?

314 :KoRoN :2001/07/29(日) 02:15
一度マルチバイト文字に対応する文字クラス(\j)を作ったんですけど
[^ -~]
で出来てしまうことなので消してしまいました。
Shift-JISの半角カナがあると破綻しますけど…マズイですか?。

誤解のないように解説しておくとハット(^)とハイフン(-)の間には空白文字がひとつ入っています。
16進コードで0x20から0x7Eを表現しているのです。

315 :KoRoN :2001/07/29(日) 02:19
>>313-314
補足です。実行速度の観点からマジメに実装した\jより
[^ -~]のほうが速いことがわかった、ということも取りやめた動機の一つです。

316 :名無しさん@お腹いっぱい。 :2001/07/29(日) 02:24
KoRoN さんありがとうございます。
[^ -~] で全然OKです。意外な解決方法ですね。


続きを読む

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver5.26+ (01/10/21-)