The page you are trying to reach does not exist, or has been moved. Please use the menus or the search box to find what you are looking for.
The page you are trying to reach does not exist, or has been moved. Please use the menus or the search box to find what you are looking for.
これはあくまで実装の一例であって、詳細は言語処理系のデザインに任されています。 また、以降の例ではスタックは下方(アドレスの低い方)に伸びるものとします。 まず、C等の手続き型言語におけるスタックフレームの使い方を復習しておきましょう。 次のように、関数Aが関数Bと関数Cを呼び出しているものとします。 int A(int a, ...) { int b, c; B(b); C(c); } int B(int b) { int b1; /* other calculation */ } int C(int c) { int c1; /* other calculation */ } 関数Aが呼ばれた直後のスタックには、保存された呼び出し元のレジスタ、戻りアドレス、 そしてAの引数 (a等) とローカル変数 (b, c) 等が積まれます。スタックポインタ(SP)はスタックの再下端を指し、またフ
firefoxをEmacsにしてくれるKeySnailがすごすぎる 2009.09.27 twitter 日記 anything.el, Emacs, firefox, google, javascript, KeySnail Emacsでコード書いたり、日記書いたりしているときに、ネットで調べものしようとマウスに手を持っていくのが鬱陶しくなったりします。 というわけで、Emacsにw3mなぞ入れてみたのですが所詮はテキストブラウザ、昨今のリッチなサイトは表示がグダグダに乱れてしまって、結局firefox使ったりしてました。はーvimperatorいいなーでもvimだしな、とか思ってたらすごいアドオンがありました。 KeySnail KeySnailとは、firefoxをEmacsライクにしてくれるアドオン。詳しい使い方は作者のmoozさんが詳しく説明してくれています。 Emacs ユーザ
とりあえず、GTK+ で何かを作るときに基本形となるものをば。これを拡張していけば大抵のものは作れるかと。w ちなみに、GTK+ の関数仕様については、DevHelp というマニュアルを使って調べるのが便利。メニュー Application → Programming の中に入っていると思う。入ってなかったらアプリケーション追加でインストールしておく。 まずプログラム全体はこんな感じ。 1 #include <gtk/gtk.h> 2 3 static void destroy(GtkWidget *window, gpointer data) 4 { 5 /* メインループを終了 */ 6 gtk_main_quit(); 7 } 8 9 int main(int argc, char *argv[]) 10 { 11 GtkWidget *window, *label; 12 13 /
デスクトップ環境とGUIツールキットの組み合わせは、デスクトップアプリケーションの開発者にとって重要であり、それぞれのツールキットは特有のデザインや機能を提供します。開発者は、プロジェクトの要件やデザインガイドラインに応じて適切な環境とツールキットを選択します。 OSSなデスクトップ環境とそれに対応するGUIツールキットは以下の通りです: GNOMEデスクトップ環境 GUIツールキット:GTK (GIMP Toolkit) GNOMEデスクトップ環境は、GNOME Foundationによって開発されています。GNOMEはLinuxデスクトップ環境の一つであり、GTKツールキットを使用して構築されています。 KDE Plasmaデスクトップ環境 GUIツールキット:Qt KDE Plasmaデスクトップ環境は、KDE Communityによって開発されています。KDEアプリケーションやプラ
About Anjuta Features a number of advanced programming facilities including project management, application wizard, interactive debugger, source editor, version control, GUI designer, profiler and many more tools. Focuses on providing simple and usable user interface, yet powerful for efficient development. It supports the following programming languages: C, C++, Java, Javascript, Python, Vala New
各種文書: 跡地 古い文書は削除しました。各種文書の翻訳については GNOME Library をごらんください。 トップページへ
This document is for the GTK+ 3 library, version 3.24.23 . The latest versions can be found online at https://developer.gnome.org/gtk3/. If you are looking for the older GTK+ 2 series of libraries, see https://developer.gnome.org/gtk2/. I. GTK+ Overview Getting Started with GTK+ Basics Packing Building user interfaces Building applications A trivial application Populating the window Opening files
Core Libraries Core GLib Reference Manual GLib provides the core application building blocks for libraries and applications written in C. It provides the core object system used in GNOME, the main loop implementation, and a large set of utility functions for strings and common data structures. Previous Versions GIO Reference Manual GIO provides a modern and easy-to-use VFS API. It provides a file
gedit GeditApp GeditDocument GeditEncodingsOptionMenu GeditFileChooserDialog GeditMessageBus — internal message communication bus GeditMessageType — message type description GeditMessage — message bus message object GeditNotebook GeditPanel GeditPlugin GeditPrintJobPreview GeditPrintJob GeditProgressMessageArea GeditStatusbar GeditTab GeditView GeditWindow gedit-convert gedit-debug gedit-encodings
2. 設定を有効にしないと、vimエディタの便利な機能は利用できない デフォルトではvimエディタはvi互換モードで動作します。 つまり、多くのvimエディタの便利な機能は無効になっています。 もっとも簡単にそれらの機能を有効にする方法は $HOME/.vimrc設定ファイル を用意することです。 これがそのサンプル です。( このファイルの説明はこちらです。 ) 一番最初に気がつくであろうvimエディタの機能は、 vimエディタでは複数回のアンドゥが可能であることでしょう。 .vimrc設定ファイル を作成する時にきっと気づきます。 3. マルチウィンドウ :split カレントウィンドウを2つに分けます。 Control-w k でカーソルを上のウィンドウに、 Control-w j でカーソルを下のウィンドウに移動できます。 :split file.txt ウィンドウを2つに分割し、
quickrun.vim はvimで編集中のコードをその場でインタプリタで実行したり、コンパイル&実行してくれる超便利なvimプラグイン。 githubから開発版をクローンした $ git clone git://github.com/thinca/vim-quickrun.gitでディレクトリを移動して rake link_installでインストール(実際はln -sでシンボリックリンクを張っているだけなので、git pull するだけでプラグインを最新化できる!) これだけでインストール完了。 使ってみる。まずvimを起動して、以下のようにrubyスクリプトを書いて\rと叩く。すると、ファイル名(拡張子)を見て quickrun.vim がそれに適したインタプリタあるいはコンパイラを選択し、必要ならコンパイルし実行してその結果を別ウィンドウに出力してくれる。 :e でバッファに直接書
引き続きvimの設定をいじり中。 GNU Global については,以前machuさんのブログを見て知っていて,gtags.vimも入ってたんだけど,いつもコマンドとか忘れて使えてなかったので,せっかくなので再入門してみることにした。今度は忘れないようにちゃんとキーバインド登録しておこう。 詳しいことは以下参照ってことで。 ソースコードを快適に読むための GNU GLOBAL 入門 (中編) - まちゅダイアリー(2009-03-08) ソースコードを快適に読むための GNU GLOBAL 入門 (前編) - まちゅダイアリー(2009-03-07) で,自分も先のブログを参考にしつつ,加えてちょっと設定した。 " gtags " 検索結果Windowを閉じる nnoremap <C-q> <C-w><C-w><C-w>q " Grep 準備 nnoremap <C-g> :Gtags -
このページの情報は古くてあまり役に立たないかもしれません。これから Ruby-GNOME2 をはじめる方は、GitHub のページに行って、gtk3のサンプルを見ることをおすすめします。 このチュートリアルを読むにあたって 序文 さあ始めよう Ruby/GTK2のHello World シグナルとコールバックの仕組み イベント Hello World の詳細 さらに進もう シグナルハンドラをさらに Hello World の改良 ウィジェットのパッキング パッキングボックスの概念 ボックスの詳細 パッキングのデモンストレーションプログラム テーブルを使ってのパッキング テーブルパッキングの例 ウィジェット概観 ウィンドウを持たないウィジェット ウィジェット階層 ボタンウィジェット 普通のボタン トグルボタン チェックボタン ラジオボタン アジャストメント アジャストメントの作成 アジャスト
これはC言語でのGTK(the GIMP Toolkit) の使い方に関するチュートリアルです。 訳者注意書き: これは非公式にGtk tutorialの訳を始め、 現在、訳の間違いな どの指摘を頂きたいと思い、公開しながら訳を進めています。 訳していて自分で は意味が取りにくかった場合は、GTKの以前のバージョンのチュートリアルの 和訳であるhttp://www.kitanet.ne.jp/~asler/linux/gtk/ja/gtk_tut_ja.htmlを参考にさせていただいています。こちらの訳に携わった方々にここでお礼を申し上げます。 目次 1. チュートリアル の入手法について 2. はじめに 3. はじめてみよう 3.1. GTKでHello World 3.2. Hello Worldのコンパイル 3.3. シグナル とコールバック 3.4. イベント 3.5. Hello
Google Chromeのショートカットまとめです。ショートカットはたくさんありますが、中でも、ウェブブラウジングを快適にするものをピックアップしました。 それでは以下にショートカットをまとめます。 Alt+F または Alt+E ツールメニューの開閉。 Ctrl+Shift+B ブックマークバーの表示・非表示。 Ctrl+D 現在開いてるページをブックマークに追加。 Ctrl+Shift+D 開いているタブすべてをブックマークに追加。 Ctrl+J ダウンロード履歴を表示。 Shift+Esc Chromeタスクマネージャの起動。 Ctrl+Shift+J Chromeデベロッパツールの起動。 Ctrl+L URLバーにカーソル移動。 Ctrl+Backspace テキストボックス内の文字列を一定間隔まとめて削除。 Ctrl+G ページ内検索。Ctrl+Gを押し続けることでヒットしたワ
この資料は x86 アーキテクチャに関する資料です。 障害の原因究明をする際に、ある関数へ渡されるデータがわかると都合が良い場合が少なくありません。 つまり、Func1(int x) というような関数に x = 10 というときにエラーが発生する、という情報がわかれば開発者がデバッグするために非常に有効な情報といえるでしょう。 トラブルシューティングを行うときに、引数の受け渡しがどのように行われるのかを知ることは非常に重要です。 x86 インテルアーキテクチャではプロシージャを呼び出す前にスタックに引数を積み上げます。 スタックは主にここで説明するような関数呼び出しを行うために利用される、連続したメモリ領域のことです。 スタックは、アドレスが小さいほうへとデータが積み上げられます。スタックへデータを積み上げることを PUSH といい、 逆にスタックの上部からデータを取り出すことを POP
この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2023年4月) 出典は脚注などを用いて記述と関連付けてください。(2023年4月) 出典検索?: "コールスタック" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL コールスタックまたは呼び出しスタック(英: call stack)とは、プログラムで実行中のサブルーチン(関数)に関する情報を格納するスタックである。実行中のサブルーチンとは、呼び出されたもののまだ処理が完了していないサブルーチンのことを指す。実行スタック (execution stack)、制御スタック (control stack)、関数スタック (function stac
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "弱い参照" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2011年10月) 弱い参照(英: weak reference、ウィークリファレンス)あるいは弱参照とは、参照先のオブジェクトをガベージコレクタから守ることのできない参照のことである。弱い参照からのみによって参照されるオブジェクトは到達不可能とみなされ、従っていつでも解放することができる。弱い参照は、通常の参照(強い参照、強参照)による諸問題を解決するために用いられる。PythonやJavaをはじめとするガベージコレクタを実装したオブジェクト指向プログラミング言語の多くは、弱い参
“Stop the World”を防ぐコンカレントGCとは?:現場から学ぶWebアプリ開発のトラブルハック(2)(1/2 ページ) 本連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) Full GC問題の時代が再び到来! それまで順調に動いていたはずのWebアプリケーションが、ある時突然、応答を返さなくなる。そして、運用者があたふたしている間に、何事もなかったかのように再び動き出す。 Javaで構築したシステムにかかわる者ならば誰しもが体験するであろう事象、そうFull GC(ガベージ・コレクション)だ。Full GCが行われている間、すべてのアプリケーションスレッドは停止する。この事象は“Stop the
Deploying, running and managing your Ruby on Rails app is taking away precious resources? Engine Yard takes the operational overhead out of the equation, so you can keep innovating. Fully-managed Ruby DevOpsEasy to use, Git Push deploymentAuto scaling, boost performancePrivate, fully-configured Kubernetes clusterLinear pricing that scales, no surprisesDecades of Ruby and AWS experience
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日本 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直
この項目では、確率的データ構造について説明しています。画像にぼかし効果を付加する画像フィルタについては「川瀬のブルームフィルター」をご覧ください。 ブルームフィルタ(英語: Bloom filter)は、1970年に Burton H. Bloom が考案した空間効率の良い確率的データ構造であり、あるデータが集合の要素である(集合に含まれている)かどうかの判定に使われる。ただし判定は正確ではなくて、含まれていないのに含まれていると誤って判定すること偽陽性(false positive)の可能性がある。しかし含まれているものを含まれていないと誤判定すること偽陰性(false negative)はない。なお集合に要素を追加することはできるが、集合から要素を削除することはできない(ただし、拡張をした counting filter であれば削除もできる)。集合に要素を追加していくにつれて偽陽性の
豊橋で豊橋カレーうどんを食べてきました。徳永です。 金曜日から大変な地震が発生しています。被災地の皆様のご無事と、救助に向かわれた方のご無事をお祈りいたします。 さて、今回は、3/7〜3/11の間、豊橋技科大で行われた2011年の言語処理学会年次大会の参加報告をしたいと思います。私はC4セッション(日本語入力における言語処理(1))で、「C4-6 日本語かな漢字変換における識別モデルの適用とその考察」というタイトルで発表してきました。 予稿集のPDFの方は、こちらにアップロードしておきました。→日本語かな漢字変換における識別モデルの適用とその考察 発表内容に関しては、予稿のPDFと発表資料の方を見ていただければと思いますが、ここではもう少しぶっちゃけて、発表の狙いなどを書いてみたいと思います。 この発表の貢献を簡単に述べると、識別モデルを使うと変換精度が上がることが実験的に確かめられたよ、
3日目になるとだいぶ現地にも慣れてくる。@tettsyun くんたちと同じバスだったようだが、彼らは3日目しか来ていないようで、日帰りだときついんじゃないかな〜と思う半面、5日間もいると日常業務が完全に滞ってしまうので(メールも満足に読めない)、今年は外に出かける回数を意識的に減らさないと仕事にならない、と思ったりもする。 3日目の目玉はなんといってもテーマセッション「日本語入力における言語処理」。裏で「不自然言語処理 枠に収まらない言語表現の処理」もあり、そちらも大盛況だったようだが、IMEに関するテーマで60人以上人が集まるということが驚き。もっとも人が多かったのは@taku910 さんの発表だったが、これだけ日本語入力が盛り上がりつつあるのは Google 日本語入力(+Mozc)の影響が極めて大きいと思うので、ありがたいことである。 ちなみに自分の原稿は こちら (スライドは写真を
ガベージコレクション[注釈 1](英: garbage collection、GC)とは、コンピュータプログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能である。1959年ごろ、LISPにおける問題を解決するためジョン・マッカーシーによって発明された[1][2]。 メモリの断片化を解消する機能はコンパクション(英: memory compaction)と呼ばれ、実現方法によってはガベージコレクションと共にコンパクションも行う仕組みになっている。そのためコンパクションを含めてガベージコレクションと呼ぶ場合もあるが、厳密には区別される。 また、ガベージコレクションを行う主体はガベージコレクタ(英: garbage collector)と呼ばれる。ガベージコレクタはタスクやスレッドとして実装される場合が多い。 「ガベージコレクション」を直訳すれば「ゴミ集め」「ごみ拾
Cheney's Algorithm is a method of performing a copying garbage collection using semi-spaces, that is, it works by splitting heap memory into two parts and only using one at a time. Essentially, at any given moment there is an active part of memory from which new objects are allocated. When conditions get such that a garbage collection is needed, the live objects of the active part of memory are
malloc(マロック, エムアロック)、calloc、reallocは、動的メモリ確保を行うC言語の標準ライブラリの関数である[1][2][3]。確保したメモリの解放にはfree関数を使用する。 mallocが使用する実際のメモリ確保機構には様々な実装がある。それらの性能は、実行時間と要求されるメモリの両面で様々である。 C言語は通常メモリを「静的メモリ確保」か「自動メモリ確保」で管理する。静的変数は主記憶上にプログラムが存在する期間中ずっと確保されている。自動変数(局所変数)は通常コールスタック上に確保され、対応するサブルーチンが実行中の間だけ存在する。しかし、いずれの方法も限界があり、確保できるメモリ量(変数のサイズ)はコンパイル時に決められてしまう。必要なサイズが実行時でないと判明しない場合、例えばディスク上のファイルから任意のサイズのデータを読み込むような場合、固定サイズのデータ
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
●od コマンドの基本的な使い方 od は "Octal Dump" の略なので、デフォルトは 8進数ダンプとなる。ただし 2バイト単位での 8進数表記であるため、かなりわかりづらい。 % od file.txt 0000000 020474 026455 044444 035144 064440 062156 074145 064056 0000020 066564 026154 020166 027061 032063 031040 030060 027471 0000040 032060 030457 020070
Google が公開しているソフトウェアの解説シリーズ(→その1 , その2)の続きです。今回は google-glog を使ってスタックトレースを表示する方法についてご紹介します。 C++ でプログラムを書いているとよく遭遇するのがセグメンテーション違反というエラーです。不正なアドレスへのアクセスなどによりセグメンテーション違反が起きると、通常、 UNIX 系の OS では SIGSEGV というシグナルによってプログラムが終了するとともに、 core というファイルが作られます。 core ファイルにはデバッガから参照できるいろいろな情報が残っていますが、多くの場合に役に立つのは、スタックトレースという情報です。スタックトレースを見れば、プログラムがどこでクラッシュしたのか、どのような関数を経由してそこにたどり着いたのかがわかります。プログラムがクラッシュした箇所を特定できれば、単純な
zsh のモジュールに zpty というのがあるのを最近発見した。 どうもコレを利用すれば指定したコマンドを 仮想端末上で実行することが出来るらしい。 具体的にどういったことが出来るようになるのかというと、 端末が必要なプログラムを自動化することが出来る。 たとえば、パスワード入力処理などだ。 パスワード文字列を標準入力から読み込ませようとしても、 大抵のプログラムでは入力できない。 なぜかというと、多くのプログラムにおいてパスワード入力処理は 端末から読み込むように作られているからだ。 zpty を利用すればそういったたぐいのものをすべて自動化できる。 いわゆる、expect というコマンドで実現していたことが zsh だけで出来るのだ。 今回は、簡単に試すことが出来るサンプルとして、 su コマンドのパスワード入力を zpty を使って自動化してみる。 まず、zsh に標準添付されてい
zshには、過去の入力履歴から予測し、 リアルタイムに自動補完してくれるという機能というのがあるようだ。 predict-on というのが該当する。 例えば以下の画像は、 この機能を有効にした状態で 'h' とだけ入力した状態だ。 Enter キーを押すだけでただちに実行できる。 なんだか、結構便利だったので 以下のような設定で使用する事にした。 % autoload predict-on % zle -N predict-on % zle -N predict-off % bindkey '^X^Z' predict-on % bindkey '^Z' predict-off % zstyle ':predict' verbose true zsh の man で載っているキーバインドに設定してみた。 Ctrl+X Ctrl+Z で predictモードが ON になり、 Ctrl+Z
自動バックアップ処理をさせたいが シェル権限を与えたくないときとかに使える技。 やり方は簡単で $HOME/.ssh/authorized_keys の "コマンドを制限したい公開鍵" の行の先頭に 実行させたいコマンドを記述すればよい。 そのときのフォーマットはだいたい以下のようになる。 command="実行させたいコマンド",sshのオプションをカンマ区切りで書く command=hoge というのを付け足すことによって その公開鍵でアクセスがあったときに 指定したコマンドを実行させることができる。 たとえば、uptime を実行させたいときは、 以下のようにすればよい。 command="uptime",no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAABbBFERTWER....
たとえば以下のように A というサーバーをログインしなければ到達できない B というサーバーがあったとき local --> hostA --> hostB 二回に分けて入力するのが面倒くさい。 local$ ssh user@hostA # Aにログイン成功 hostA$ ssh user@hostB # やっとBに到達。面倒!! hostB$ そんなときに、以下の構文を思い出すことだろう。 ssh user@host リモートで実行したいコマンド リモートで実行したいコマンドで "ssh user@hostB" ってやったらいいんじゃないかと 思いつきでやってしまうと、以下のようにエラーになる。 $ ssh user@hostA "ssh user@hostB" Pseudo-terminal will not be allocated because stdin is not a t
vim の MRU という、"最近のいじったファイルリスト" を 簡単に参照できるプラグインがあるのだが、 これをボクはかなり便利に使っている。 で、vih と以下のようにエイリアスする事で すぐに使えるようにしてる。 $ alias vih='vi +MRU' あと、最近ハマっているのが、 :Vexplore として、左側にファイルエクスプローラーを 表示させておいて(vim7 から標準だったはず) ファイルに、hjkl で移動した後で p(プレビュー), o(編集) と行ったような感じでファイルを参照する事が出来る。 そしてそれが便利。 追記: Vexplore なのに、 VExplore と表記してたのを 修正した。drry さんにわざわざ教えていただいた。 ありがとうございます。
zsh % vared PATH どうでもいいけど、zshに bye ってあったのね。 % bye
せっかく教えていただいたので tail -f しているファイルをmvしても そのまま読み込み続ける事が出来るのはなぜなのかを調べてみた。 『詳解UNIXプログラミング(Advanced Programming in UNIX Environment)』 の CHAPTER.4 の 4.14 ファイルシステム に この件に関連する情報が記載されている。 コレを参考にボクの解釈した結果をまとめてみた。 間違っている箇所がありましたら 気軽にご指摘していただけますようよろしくお願い致します。 まず、事の発端から。 ボクのこの一文。 http://d.hatena.ne.jp/lurker/20070228/1172595016 そうそう、tail で思い出したが、GNUのtailはデフォルトで (たぶん/詳しくは知らない)inode番号を見ているため tail -f した状態で そのログファイル
書こう書こう書こうと思っていたら先に書かれてしまった。 404 Not Found この行き場の無い感情をどうにかボクの中から排除しなければならない。 そう考えたときに独り言のようにこのブログロに記述すれば良いじゃないかという 結論にたどり着いたのはもはや必然とも言える。 find | xargs による探索だが、それが簡単なものであれば 実は grep コマンドだけでうまくいく。 GNU grep、BSD 系の grep コマンドでは include、exclude オプションで再帰検索時に検索対象とするファイルを絞り込む事が出来るのだ。 --include=pattern --exclude=pattern たとえば、カレントディレクトリ以下の *.rb から test という文字列を 含むファイルを探索したい場合は次のようにすれば良い。 fgrep -r --include='*.r
zsh には、zargsコマンド(組み込み関数) というのが用意されている。 これは、拡張グロブ用の xargs コマンドと言っても良いだろう。 マニュアルを見ると、xargs コマンドとオプションは、完全に互換しているらしい。 autoload zargs とする事で利用可能だ。 使い方だが、xargs というと、標準入力から読み込んだ要素、行に対して 特定のコマンドを実行するというものだが zargs の場合は、引数に指定した 拡張グロブ に対してこれらの処理を行う。 % zargs OPTIONS -- 拡張グロブ -- 実行したいコマンド たとえば、xargs で一番利用されると思われる ファイル数が ARG_MAX を越えてしまっているディレクトリ内のファイルを まとめて削除したい場合などは、次のようなコマンドを入力すれば良い。 % zargs -- ./* -- rm これだけ
男のbashユーザーが、バラ色の紳士こと漢のzshに乗り換えたときに アッーってなるコト事を先ほどいくつか思いついたので共有する。 !!とかの履歴実行はrコマンドで zshには、r というシェル組み込みコマンドがあって 履歴からの実行が簡単に行える。 たとえば、一番最後に実行したviコマンドを実行したいときなどだ。 bashなんかだと !vi で出来るのだが、 rコマンドだったら % r vi でよい。 直前に実行したコマンドを再び実行したいとき、 bashなんかだと !! というやり方になるが、 rコマンドでは、 % r とするだけでよい。 また、文字列を置き換えてからの履歴実行はどうだろう。 たとえば次のようなbashの例だ。 $ vi .zshrc $ !vi:s/zsh/bash/ これは、最後に実行したviコマンドの引数文字列を ":s/zsh/bash/" によりzshという文
コンピュータで扱う数値(やデータ)は、1バイトで表現されるもの以外に、2バイト、4バイト、8バイトなど複数バイト(多バイト)で表現されるものがある。一方、記憶装置は汎用化され、最小の1バイト単位でも扱えるように、1バイト毎に番地(アドレス)が連続して割り振られている。すると、多バイトの数値やデータの各バイトをどのような順序で記憶装置に格納するかについての規則(バイトオーダ、バイト順)は、いくつか種類(選択肢)があることになる。 ビッグエンディアン(右)とリトルエンディアン(左) 数値の1番小さい桁1バイト分を、1番大きいアドレスの記憶装置に配置し順に並べる規則をビッグエンディアンという。それと対称的に、数値の1番小さい桁1バイト分を、1番小さいアドレスの記憶装置に配置し順に並べる規則をリトルエンディアンという[1][2]。 ビッグエンディアンを採用しているコンピュータやCPUとしては、IB
去年の話ですが、海外でこんな記事が上がっていました。 20 Tips you need to learn to become a better PHP Programmer 記事の内容は、かなりレベルが低いです。 しかし、初心者のうちに知っておけば、より早く成長出来るでしょう。 初心者PHPerのために、この記事の翻訳を載せます。 20 Tips you need to learn to become a better PHP Programmer PHPは、同じオブジェクトの扱い方でも複数の書き方を持っている、とても気まぐれなプログラミング言語だ。 詳しくは、私の書いた”The Art of Programming“を読むと良い。 これから書くTipsは、過去のプロジェクトから私が学んだコードの可読性、メンテナンス性を上げ、あなたを素晴らしい、より進んだPHPプログラマーにするもの
令和からの働き方について -TownSoft- 元「傲慢SE日記」で、しばらく放置していました。 2020年からはこれからの働き方などについて書いて行こうかと思います。 本カテゴリーは手続き型言語になれている人がどうやったらオブジェクト指向を理解できるのかを考えて書いている記事です。 多少の言語知識があることを前提に進めます。 C#やJava等の言語では肝となる部分です。 この概念が分からないとガベージコレクションの概念が分かりません。 そして、この概念を持っているとオブジェクト指向の理解が早まります。 さて、スタック領域は皆さん知っているはずです。 特にC言語を使っている方はお手の物のはずです。 なぜなら、 普段使っている領域 ですから。 まぁ、順を追って一つずつ解決していきましょう。 まず。ポインタの概念からゆっくりと解決していきましょう。 int i = 0; この書式はint型のi
id: 486 所有者: msakamoto-sf 作成日: 2009-11-18 11:39:34 カテゴリ: C言語 [ Prev ] [ Next ] [ C言語系 ] pkg-configの自分用メモ pkg-config 本家 http://pkg-config.freedesktop.org/wiki/ 概要 ライブラリなどのパッケージ毎に、インストール先やコンパイル/リンクオプションを定義したメタデータファイルを用意しておき、 $ gcc -c `pkg-config --cflags gtk+-2.0` -o foo.o foo.c $ gcc `pkg-config --lflags gtk+-2.0` -o gtktest foo.o のように組み込む事で、コンパイルオプションやリンクオプションを展開してくれる開発ツールである。 対応するメタデータファイルは、"パッケー
昨日、前の会社でLTがあって参加してきました。 せっかくなんで自分の発表をさらしときます。 内容はvimの便利なプラグインについてです。 前から使ってたのと vim勉強会 の資料を見て使いだしたのも含めての紹介です。 EnhacedCommentify.vim これはコメントアウト、コメントインを簡単にできる。 ¥x で可能。ビジュアルモードでもインサートモードでも使用可能。 かなりの数の言語のコメントアウトをサポートしているので便利。 特に HTML とかめんどくさくて重宝します。 で、サポートしていない言語についても簡単に追加することができます。 tanabee さんの コメントアウトと、その解除をトグルさせる が actionscriptのコメントアウトの追加方法を書かれているので参考になります。 mxml の 記事を 参考に設定しているのですが、 auocomplpop.vim +
withdrawn -- the search engine bots got ahold of the "unsatisfactory" address and within a week -810 was dumped onto manpageview's karma. The address problem was fixed, but the karma wasn't, and so with the rating being so negative, few bother to look at manpageview here anymore. You can still go to my website, http://www.drchip.org/astronaut/vim/index.html#MANPAGEVIEW, and get a copy.
The matchit.vim script allows you to configure % to match more than just single characters. You can match words and even regular expressions. Also, matching treats strings and comments (as recognized by the syntax highlighting mechanism) intelligently. The default ftplugins include settings for several languages: Ada, ASP with VBS, Csh, DTD, Essbase, Fortran, HTML, JSP (same as HTML), LaTeX, Lua,
"Note: This option must set it in .vimrc(_vimrc). NOT IN .gvimrc(_gvimrc)! " Disable AutoComplPop. let g:acp_enableAtStartup = 0 " Use neocomplcache. let g:neocomplcache_enable_at_startup = 1 " Use smartcase. let g:neocomplcache_enable_smart_case = 1 " Set minimum syntax keyword length. let g:neocomplcache_min_syntax_length = 3 let g:neocomplcache_lock_buffer_name_pattern = '\*ku\*' " Enable heavy
The grep plugin integrates grep like utilities (grep, fgrep, egrep, agrep, findstr, silver searcher, ack, ripgrep, git grep, sift, platinum searcher and universal code grep) with Vim and allows you to search for a pattern in one or more files and jump to them. To use this plugin, you will need the grep like utilities in your system. If a particular utility is not present, then you cannot use the
現在開いているバッファのリストを、 画面上部の小さなウィンドウで表示するスクリプトです。 このスクリプトを使用すると、タブエディタのようにvimエディタを 使用することが出来るようになります。 (Windows, Mac) 概要 minibufexpl.vim : Elegant buffer explorer - takes very little screen space http://www.vim.org/script.php?script_id=159 プログラミングしていると(それ以外でも)、 どうしても複数のファイルを同時に操作することが多くなります。 そんな時、複数のファイルを素早く切り替えながら、 コーディングできるととても便利です。 このスクリプトはタブエディタのような環境を提供してくれる、 大変有用なスクリプトです。
Overview The Most Recently Used (MRU) plugin provides an easy access to a list of recently opened/edited files in Vim. This plugin automatically stores the file names as you open/edit them in Vim. This plugin will work on all the platforms where Vim is supported. This plugin will work in both console and GUI Vim. This version of the MRU plugin needs Vim 7.0 and above. If you are using an earlier v
翻訳されたヘルプドキュメントを入手する。 まず、日本語のヘルプドキュメントをダウンロードしてください。 日本語のヘルプドキュメントは、現在、次のURLで配布しています。 Vim日本語ドキュメント(香り屋) http://www.kaoriya.net/vimdoc_j/ このページの、「Vim日本語ドキュメントダウンロード(スナップショット)」のリンクから 圧縮ファイルの形式のドキュメントをダウンロードしてください。 ダウンロードした圧縮ファイルを解凍する。 ダウンロードした圧縮ファイルを解凍します。 何らかの圧縮ファイル解凍ツールで解凍すると、次のように展開されるはずです。 runtime/ | +-- doc/ | +-- ada.jax | +-- autocmd.jax | +-- change.jax | +-- cmdline.jax | +-- debug.jax | +--
Repository: https://bitbucket.org/ns9tks/vim-l9/ Issues: http://bitbucket.org/ns9tks/vim-l9/issues/ Download latest(development) version https://bitbucket.org/ns9tks/vim-l9/get/tip.zip ============================================================================== INTRODUCTION *l9-introduction* l9 is a Vim-script library, which provides some utility f
*scratch* is a Vim plugin to provide Emacs-like scratch buffer. You can write anything in it, and you can also evaluate a part of the buffer as Vim script. It is a temporary buffer and it is not related to a real file, so the content of the buffer will be discarded when you quit Vim. This buffer is useful when you test a bit of script or other use. Requirements: - Vim 7.0 or later Latest version
ローマ字入力から日本語を(インクリメンタルに)検索するための正規表現を生成するMigemoを配布しています。 概要 ローマ字入力から日本語を(インクリメンタルに)検索するための正規表現を生成するRuby/Migemoというライブラリがあります。それをVimに組み込むためにC言語でC/Migemoとしてライブラリに書き起こし公開しています。ソースコードに辞書ファイルは含まれていませんが、インターネットに接続された環境ではライブラリのビルド時に自動的にダウンロードされます。 ダウンロード Windowsバイナリ(DLL) 下のリンクから適切なバージョンを選択してダウンロードしてください。 C/Migemo for Windows 32bit C/Migemo for Windows 64bit ソースコード 完全なソースコードは https://github.com/koron/cmigemo
デフォルトでインストールされている — 作者: 小見 拓 — 最終変更 2012年01月08日 15時22分 本サイトで紹介しているvimスクリプトのうち、 vimエディタにデフォルトで添付しているスクリプトの記事の一覧です。 バッファ管理系 — 作者: 小見 拓 — 最終変更 2012年01月08日 15時22分 本サイトで紹介しているvimスクリプトのうち、 バッファの管理機能やコントロール機能を提供するスクリプトのドキュメントの一覧です。 ファイル管理系 — 作者: 小見 拓 — 最終変更 2012年01月08日 15時22分 本サイトで紹介しているvimスクリプトのうち、 ファイルの管理機能やコントロール機能を提供するスクリプトのドキュメントの一覧です。 検索機能拡張系 — 作者: 小見 拓 — 最終変更 2012年01月08日 15時22分 本サイトで紹介しているvimスクリプト
概要 vim online Tip #271: easy (un)commenting out of source code http://www.vim.org/tip_view.php?tip_id=271 Visual Modeで指定した範囲のソースにコメントを付けたり、外したりするスクリプトです。 インストール方法 vim onlineのTip #271 を参考にして、 スクリプトを製作しました。 中身は以下のようになっています。 " commentout.vim " lhs comments vmap ,# :s/^/#/<CR>:nohlsearch<CR> vmap ,/ :s/^/\/\//<CR>:nohlsearch<CR> vmap ,> :s/^/> /<CR>:nohlsearch<CR> vmap ," :s/^/\"/<CR>:nohlsearch<CR> v
http://www.vim.org/scripts/script.php?script_id=1697 vim7 から追加された text-object は大変便利で、今や手放せなくなっています。その text-object をより便利に使えるプラグイン、surround.vim が便利すぎるので紹介します。 いままで、text-object では (以下では、コードの『*』の位置に現在カーソルがあると考えてください。) foo 'b*ar' bazの位置にカーソルがあるとき、i' でシングルクオーテーションの中身を選択できたり、a' でシングルクオート含む部分を選択できました。しかし『'』そのものを削除したり、置換したりはできなく、ちょっと不便でした。しかし、surround.vim では ds cs ys vs それぞれにコマンドを割り当てて、様々なことができるようになってます。たと
最近 .vimrcを貼り付けるのが流行ってるみたいなので自分も.vimrcを貼り付け、るわけでなくオススメの plugin を紹介してみようかと。 Align.vim http://www.vim.org/scripts/script.php?script_id=294 痒いところに手が届く整形ぷらぎん。 options = { width => 100, height => 50, background => nil, } なソースを範囲選択して :'<,'>Align => すると options = { width => 100, height => 50, background => nil, } のように整形してくれます。 Allargs.vim すべてのバッファでコマンドを実行。例えば開いてるバッファのすべての文字列を置換したければ、 :Allargs %s/perl/ruby
こんにちは。vimをビムと発音する派のryosukeです。 ウノウでエディタといえば、以前はvimかemacs、それもvim優勢(ユーザー数的に)だったのですが、最近は色んなエディタやIDEを使ってる人が増えています。 私は以前はemacsを使っていたのですが、今ではemacsでヤンクの仕方を忘れてしまうぐらいにvimユーザーになってしまいました。とはいえ、vimを使いこなしてるとは到底言えず、 最速のキーリピートに頼る毎日です。 そんな私ですが、いくつか愛用しているプラグインがあるので、今回紹介させていただこうと思います。どのプラグインも基本的に ~/.vim/plugin にコピーするだけで使えます。 yanktmp ファイルを経由することで異なるプロセスのvim間でレジスタ(クリップボード)を共有する(かのようにコピペする)ことができます。screenでいくつも vim を開いたりす
eregex.vim は、Perl/Ruby で使われている拡張正規表現を Vim の正規表現に変換するスクリプトです。基本的に、「選択」「繰り返し」「丸カッコ」の扱いが拡張正規表現流です。その他は Vim の正規表現に従います。 拡張正規表現を使って、/, :s, :g, :v に相当するコマンドが使えるようになります。それぞれ、:M, :S, :G, :V です。 eregex255.tar.gz の解凍は、$ tar -xvzf eregex255.tar.gzするか、tar.gz に対応するソフトの +Lhaca や eo を使って下さい。 ドキュメントは EUC-JP です。 »eregex.vim ダウンロードページ
This plugin enables vim to yank and paste through the multi processes. If :call YanktmpYank(), yank string write to tmpfile. And :call YanktmpPaste_p() or YanktmpPaste_P(), paste string from tmpfile. Default tmp file is '/tmp/vimyanktmp' If you want to change tmp file. let g:yanktmp_file = '/tmp/example_tmp_file' ==================== file yanktmp.vimrc ==================== map <silent> sy :call Ya
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く