忍者ブログ
勉強用に使いたいと思います。三日坊主の可能性大
[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

今日は高機能テキストエディタ「Vim」についてのお話。

PCについて知れば知るほど、テキストエディタがスーパーアプリに見えてくる今日この頃。
テキストエディタってのは、文書を書いて保存とかできるやつね。

僕の偏見的な視点で、よく使われるテキストエディタ(またはその代わりに)はこんな感じにわかれてます。

・一般人
 --メモ帳・MicrosftOffice Word・メーラーなど
・プログラマ
 --Terapad・さくらエディタ
・ハッカー
 --Vim・Emacs

つまり、Vimをある程度使えるようになれば、ハッカーにはなれなくてもハッカー気分にはなれる!
ですが、さすがハッカー御用達だけあって使うのもムズカシイ。
以下に利点欠点をまとめてみたいと思います。

利点
・ハッカー気分になれる
・細かい設定が可能
・カーソルの移動を素早く行える
等々・・・

欠点
・コマンドを覚える必要がある
・独自の用語も覚える必要がある
・WindowsのショートカットとVimのショートカットを混同するようになる
等々・・・

基本的にはLinux上で使うことが多いですが、別にWindows用もあります。
Windowsはこちらからダウンロード。
http://www.kaoriya.net/software/vim
Linuxの場合、たいていは入っています。Debian等、一部は入ってないので、それぞれの方法でインストールしなければなりません。
たいてい、この3つのうちのどれかでしょう。
#yum install vim
#apt-get install vim
#aptitude install vim


さて、無事に入れたらレッツ起動!
起動すると恵まれない子供たちに寄付金を・・・的なのが出ますが、スルー。別に寄付してあげてもいいと思います。

ここから色々と説明します。
別に全てを覚える必要があるわけではないので、他のVim解説サイトよりも超小量でいきますよ!

起動するとなんとビックリ!
キーを打っても入力できません!
実は今は、コマンドモードというモードになっています。
このモードの時は文字を入力するのではなく、何かしらの操作を行います。
保存とかね。
ここで、大事なことを覚えておいてください。
これから他のモードもいくつかでてきますが、Escを押せばコマンドモードになります。
途中でわけわかんなくなったらとりあえずEsc連打で。

とりあえずiキーを押しましょう。
すると、挿入モードになります。
この状態は普通のテキストエディタを使っているときと一緒。
文字入力ができます。
文字を入れ終わり、コマンドモードに戻るときはEscを。

コマンドモードでvキーを押すとビジュアルモードになります。
このモードは、普通のテキストエディタで言うならマウスでドラッグしているときと一緒です。
つまり、入力した文字を範囲指定して、色々できるわけです。


さて、モード説明はこれで終わり。次はコマンドの説明です。
覚えることはそこまで多くないですが、実際に使っていかないと覚えられません。

コマンドは「:」から始まります。さっそく見ていきましょう。

:q
Vimを終了する。保存してない場合は警告がでます。

:q!
Vimを終了する。保存してなくても終了できます。

:w
保存します。

:wq
保存してからVimを終了します。

:数字
数字の行までカーソルを移動します。

とりあえず覚えるのはこれだけ。
他のコマンドは使っていくうちにきっと覚えます。


あと忘れてはいけないのが、ショートカット。
先ほどのモード移行に使ったiやvもショートカットです。
ショートカットは(Esc以外)挿入モード以外で使用できます。

Esc
コマンドモードに移行する

i
挿入モードに移行する

v
ビジュアルモードに移行する

y
文字をコピーする(ビジュアルモードにするのはほぼこれのため!)

p
文字を貼り付ける

x
1文字削除する(Deleteと同じ機能)

dd
1行削除する

$
行の最後にカーソルを移動する

gg
1行目にカーソルを移動する

G
最終行にカーソルを移動する

/文字列
文字列を検索する

n
文字列を検索した場合に、次の候補に移る


ショートカットは少し多いですが、慣れれば便利なものばかり!


Vimの説明は、画像を入れられないので見た目的につまらないですよね。
たとえ、画像を入れても、テキストエディタじゃ・・・って感じですしね。

もし次があれば、.vimrcについて説明したいと思います。
PR

お久しゅう。
今回はネタで。

サーバーを作ろう!(1)(だっけか)を書き、その後(2)をずっと書きたくてうずうずしてたのですが・・・

VMWareがネットに繋がってくれないっていう。

本日やっとこさネットに繋がったので、さっそくvimで遊ぼうと思いました。
まずはインストールからだね!Ubuntuは元からvimが入ってた気がするけど、Debianは入ってなかったし、念には念を!
$sudo aptitude vim
見事に間違えて打ちました('A
本来は
$sudo aptitude install vim
と打つべきです。

これの意味は
「vimっていうソフト欲しいからネットから探して落としてインストールしといて」
という意味です。
Windowsと違って探すことからインストールすることまで全部、この1行でできるから便利です。

話がそれましたが・・・
コマンドを間違えれば、
「こんなコマンドねーよ!コマンドっていうのはこう使うんだよ!」
って叱られて、勝手にヘルプが表示されます。
 



「どうもありがとう!見たくもないわ!ただ間違えただけじゃ!」
と、自分が間違えたくせに逆切れするのはいつものこと。

・・・と、ふと一番下を見てみると。。。



なんこれ!!!
スーパー牛さんパワーってなに!!!


・・・ということで色々ネット検索して調べてみたところ、スーパー牛さんパワーを発見。
どうやらこれらしい。
aptitudeさんはパワーないけど、apt-getさんはパワーあるらしいです。



・・・なんていうか、
Linuxとかいうクソ真面目なソフトで急にこんなものがでてきたら、笑えますよね。

「やべー!納期まであとちょいしかないんだけど!!」
「くそ!今夜も徹夜だ!」
とか言いながら、こういう機能を作ってたら・・・・・
とか想像すると、楽しいです。
DoctrineとMySQLの対応表が昔のSymfony Tutorialにあったようなのでパクッってきました。元はこちら
http://www.symfony-project.org/doctrine/1_2/ja/06-Working-With-Data

共通のAPI

関数名 SQL append 説明
where('u.username = ?', 'jwage') u.username = ? No WHEREを設定して既存のWHERE<条件をオーバーライドする
andWhere('u.username = ?', 'jwage') AND u.username = ? Yes ANDでappendされるWHERE条件を追加する
whereIn('u.id', array(1, 2, 3)) AND u.id IN (?, ?, ?) Yes appendされるAND IN WHERE 条件を追加する
andWhereIn('u.id', array(1, 2, 3)) ^ Yes whereIn()用のコンビニエンス/プロキシメソッド
orWhereIn('u.id', array(1, 2, 3)) OR u.id IN (?, ?, ?) Yes appendされるOR IN WHERE条件を追加する
whereNotIn('u.id', array(1, 2, 3)) AND u.id NOT IN (?, ?, ?) Yes appendされるAND NOT IN WHERE条件を追加する
andWhereNotIn('u.id', array(1, 2, 3)) ^ Yes whereNotIn()用のコンビニエンス/プロキシメソッド
orWhereNotIn('u.id', array(1, 2, 3)) OR u.id NOT IN (?, ?, ?) Yes appendされるOR NOT IN WHEREの条件を追加する
orWhere('u.username = ?', 'jwage') OR u.username = ? Yes OR、WHERE条件を追加する
groupBy('u.id') GROUP BY u.id, u.username No GROUP BYを設定して既存のGROUP BYをオーバーライドする
addGroupBy('u.username') GROUP BY u.username Yes appendされるGROUP BYを追加する that is appended
having('num_phonenumbers > 0') HAVING num_phonenumbers > 0 No HAVINGを設定して既存のHAVINGをオーバーライドする
addHaving('u.username = ?', 'jwage') HAVING u.username = ? Yes 追加されるHAVINGを追加する

選択のAPI

関数名 説明
distinct($flag = true) フラグをdistinct selectに設定する
select('u.id, u.username, COUNT(p.id) as num_phonenumbers') SELECTを設定して既存のSELECTをオーバーライドする
addSelect('u.email_address') appendされるselectを追加する
from('User u, u.Phonenumber p') FROMを設定して既存のFROMとjoinをオーバーライドする
leftJoin('u.Phonenumber p') FROMにappendされるLEFT JOINを追加する
innerJoin('u.Profile p') FROMにappendされるINNER JOINを追加する
addFrom('u.Phonenumber p') FROMにappendされるFROM joinを追加する
orderBy('u.username') ORDER BYを設定して既存のORDER BYをオーバーライドする
addOrderBy('u.is_active = ?', 1) appendされるORDER BYを追加する
limit(20) 結果セットを制限するレコードの数を設定する
offset(5) レコードの制限をオフセットする番号を設定する

更新API

関数名 説明
forUpdate($flag = true) FOR UPDATEを使うためにクエリを変更する
update('User u') UPDATEするモデルの名前を指定する
set('u.username', '?', 'jwage') UPDATEクエリのために新しい値を設定する。最初の引数は修正するデータで、2番目はDQLの文字列に直接加える式(もしくはDBMS関数)、で3番目は新しい値。

削除API

関数名 説明
delete() 削除するクエリを変更する


例:
(MySQL)
SELECT i.name FROM item i WHERE i.id=3
↓↑
(Doctrine)
<?php
$table = Doctrine_Query::create()->select('i.name')
    ->from('Item i')
    ->where('i.id = ?', 3)
    ->execute();


又は、Doctrineでwhere句を書かずに
$table = $table -> getId(3);
とかでもいけるかもしれません。(うろ覚え)
&lt;&lt; 前のページ 次のページ &gt;&gt;
Calendar
03 2026/04 05
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Profile
HN:
ちろ
性別:
非公開
自己紹介:
お先まっ暗な大学生
Search
No good words
http
www.
co.jp
.com
忍者ブログ [PR]