タグ

Programmingとscriptに関するLayzieのブックマーク (6)

  • OSに付属するシェルスクリプトを読んで技術を盗む

    今回から、OS付属のシェルスクリプトを読んでいく。多くの人が使っているスクリプトを読むことで、シェルスクリプトならではの書き方、テクニックを身に付けることができるはずだ(編集部) 他人の技術を盗まなければ進歩はない 外国語をマスターするにも、楽器の演奏を覚えるにも、上達するにはただ練習するだけではダメだ。素晴らしいお手を見つけて、よく観察し、何度もまねることが必要だ。お手から技術を「盗む」ことが大切だということだ。 プログラミングでも同じことが言えると思う。文法を覚えて、ただひたすらプログラムを書くだけではなかなか上手にならない。スキルのある人のコードを見て、技術を盗もう。開発チームのメンバーそれぞれが書いたコードを持ち寄って、お互いに批評し合う「コードレビュー」に参加している、あるいはリーダーとして主催しているという人は多いと思う。このコードレビューも、人から技術を盗む良い機会と言え

    OSに付属するシェルスクリプトを読んで技術を盗む
  • ユーザ定義コマンドのスコープ - 永遠に未完成

    問題: 以下のVim scriptを実行すると何が表示されるか。 command! -nargs=+ MyEcho echo <args> let g:var = 'global' function s:f() let l:var = 'local' MyEcho var endfunction call s:f() 答え: "local" そう。ユーザ定義コマンドは関数内で実行された場合そのローカル変数にアクセスできる。 では、以下の2つのVim scriptがあった場合、b.vim を実行すると何が表示されるか。 " a.vim let s:var = 'A' command! -nargs=+ MyEcho echo <args> " b.vim source a.vim let s:var = 'B' MyEcho s:var 答え: "A" スクリプトローカルな変数に関しては、コ

    ユーザ定義コマンドのスコープ - 永遠に未完成
  • ぼちぼち散歩 PythonでVim scriptの関数を定義する

    Vim Advent Calendar 18日目! こんにちは!Vim Advent Calendar 18日目担当のtsukkeeです。以前にも、vim-users.jpにて、Hack #132: Pythonインタフェースを使う(1)とHack #136: Pythonインタフェースを使う(2)を書かせていただきましたが、今回はさらに面白い?Pythonインタフェースの使い方を紹介したいと思います。 Pythonインタフェース内でVim scriptの関数を定義する いきなりですが、vim_bridgeというものが既にあります。これに気づかず再発明してしまったのですが、自分が作ったものの方が自由に関数名を決めれるのでまぁいいことにします^^; サンプルコードは以下のとおりです。 PythonのデコレータでPythonの関数をVim scriptの関数に変換するところはvim_bridg

  • Vimスクリプトの学習法 [Vim Advent Calendar 2011]【15日目】

    この記事はVim Advent Calendar 2011の15日目の記事です. Vimテクニックバイブルが出版され,様々な便利機能を知った人は多いと思います.しかし,これを自分で作れるか,作ろうと思い至れるか,と自問自答すると,作れない,思いつかない,という人もいると思います. 何故作れないのか,何故思いつけないのか,という疑問に対する自分なりの答えを2つほど考えてみました. Vimの機能を知るほど,これってVimでやると楽なんだけどな,という作業が増えていきます.例えば,Vimのマクロ機能を知らない人は,100回同じ作業をしてしまうかもしれません.マクロ機能を知っている人は,これだけの作業をマクロにして,後は99回実行させれば良いな,と考えるでしょう.Vimの機能を知らないからこそ,Vimでやってみようという発想に至らないのだと思います.Vimの機能が把握できていないという問題は,Vi

  • Big Sky :: モテる男のVim script短期集中講座

    ここで関数リファレンスのみ格納先の変数の先頭が大文字になっていますが、これはVim script特有の制限になります。 数値は一般的な言語と同じ様に四則演算できます。文字列については.を用いて連結します。 また文字列は添え字によるアクセスが可能で、pythonの様に echo "hello"[1:3] という記述が出来ます。その他文字列操作関数については:help evalに詳しく記述されています。 また型同士の比較についてはthincaさんの記事が役立ちます。 Vimスクリプト基礎文法最速マスター - 永遠に未完成 Vimスクリプト基礎文法最速マスター vim 流行ってるみたいなので遅ればせながら便乗。需要?何それおいしいの? Perl基礎文法最速マスター - サンプルコードによるPerl入門 Route 477... http://d.hatena.ne.jp/thinca/20100

    Big Sky :: モテる男のVim script短期集中講座
    Layzie
    Layzie 2011/12/02
    後で何回も読む!最近気になってるのが、開発する時にデバッグとかの環境どうしてんのかなって事。今の自分の環境使うのも嫌だし…。そこら辺誰か書いてくれないかな(チラッ
  • Vimでゲームを作るためのtips - mfumiの日記

    なんかvimゲームを作るのがブームのようなので(w,いくつかvimscriptでゲームを作ってみて分かったことをまとめようと思います. 最初に言っておくと,これはゲーム作成に限りませんが,vimscriptを書くコツはいかに他のvimscriptから似たような処理を見つけて抜き出してくるかだと思います. Redirecting… にいくつか紹介されているので,それのソースを見るのが一番速いと思います^^; ・バッファ作成 もしバッファが作成されていなければ画面を分割して新たにバッファを作り,バッファがあればそのバッファに移動します.(この例では ==MineSweeper== ) let winnum = bufwinnr(bufnr('==MineSweeper==')) if winnum != -1 if winnum != bufwinnr('%') exe "normal \<

    Vimでゲームを作るためのtips - mfumiの日記
  • 1