FreeBSD初心者運用日記 このページをアンテナに追加

 | 

2008-03-20

[]画面行移動 23:00 画面行移動 - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - 画面行移動 - FreeBSD初心者運用日記 画面行移動 - FreeBSD初心者運用日記 のブックマークコメント

一行が大変長い行の場合、画面上は複数行になったりする。

このように画面上は複数行だけど本当は一行の場合に、画面上の行移動をgjとかgkを使って行うことができる。

[]全件置換で置換えの有無を個別に確認する 22:15 全件置換で置換えの有無を個別に確認する - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - 全件置換で置換えの有無を個別に確認する - FreeBSD初心者運用日記 全件置換で置換えの有無を個別に確認する - FreeBSD初心者運用日記 のブックマークコメント

:% s/hoge/foo/gc

[]複数行の一括インデント 21:37 複数行の一括インデント - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - 複数行の一括インデント - FreeBSD初心者運用日記 複数行の一括インデント - FreeBSD初心者運用日記 のブックマークコメント

行選択を行った後、>で右側にインデント<で左側にインデント

複数行の選択はV(shift+v)で行う

デフォルトでは、>でタブ二つ分インデントされてしまったりするので、

.jvimrcには以下の設定を入れておく

set ts=4 
set sw=4 
set sts=0

タブキー押下したら、半角空白4個入れるには以下のようにする

set expandtab
set ts=4 
set sw=4 
set sts=0

'tabstop' (短縮名'ts')

ファイル中の<Tab>文字(キャラクターコード9)を、画面上の見た目で何文字分に展開するかを指定する。既にあるファイルをどのように表示するのか指定したい時に便利。

'shiftwidth' (短縮名 'sw')

vimが挿入するインデント('cindent')やシフトオペレータ(>>や<<)で挿入/削除されるインデントの幅を、画面上の見た目で何文字分であるか指定します。自動的に挿入される量、と覚えておくと良いです。

'softtabstop' (短縮名'sts')

キーボードで<Tab>キーを押した時に挿入される空白の量。'softtabstop'が0以外の時には、例え'ts'を4に設定していても、<Tab>を1度押しても'softtabstop'分だけ空白が挿入されます。逆に'softtabstop'が0の場合には挿入されるのは'ts'で指定した量になります。

http://peace-pipe.blogspot.com/2006/05/vimrc-vim.html

[]ペーストについて 18:35 ペーストについて - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - ペーストについて - FreeBSD初心者運用日記 ペーストについて - FreeBSD初心者運用日記 のブックマークコメント

バッファにコピーしているものをペーストする場合、pを使う。

行頭でpを使うと、二文字目からペーストされてしまう。

一文字目からペーストするにはP

[]global 08:01 global - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - global - FreeBSD初心者運用日記 global - FreeBSD初心者運用日記 のブックマークコメント

GNU GLOBAL は、ソースコードに索引付けを行うことで、大規模システムのハックやレビューを効率化するソフトウエアです。

GNU GLOBAL

[]syncを三回する理由 07:48 syncを三回する理由 - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - syncを三回する理由 - FreeBSD初心者運用日記 syncを三回する理由 - FreeBSD初心者運用日記 のブックマークコメント

2chから引用

15 :名無しだよもん@カラアゲうまうま:02/11/24 18:39

sync 自分の為

sync みんなの為

sync 念の為

……だっけ?名言だと思った。

83 :名無しさん@お腹いっぱい。:02/12/05 12:54

>>81

1 回目の sync は fs に同期要求を出す

2 回目の sync は 1 回目の同期要求が完了しないと返っ

てこないので, 2 回目の sync が返ってくれば同期がと

れてる

3 回目の sync は単なる気休め

ってな話だったような...

134 :名無しさん@お腹いっぱい。:04/05/03 16:08

>>83

2回目のsyncが実行される前に同期処理が完了してしまい、

かつその後でdirty bufferが発生した場合のことを考えると3回目のsyncも意味がある。

ただし、3回目のsyncを実行してからhaltが走るまでの間に

同期処理が完了し、かつその後でdirty bufferが発生する可能性もあるから、

haltないしshutdownコマンドにsync相当の機能がなければ

結局安全にシャットダウンできない。

[]/usr/src/usr.bin/yes/yes.c 06:08 /usr/src/usr.bin/yes/yes.c  - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - /usr/src/usr.bin/yes/yes.c  - FreeBSD初心者運用日記 /usr/src/usr.bin/yes/yes.c  - FreeBSD初心者運用日記 のブックマークコメント

C言語の勉強もかねて、システムコマンドのソースを探検してみたいと思います。

まず、一番簡単そうなyesコマンド。

コマンドのソースがおいてある場所を知るためにはwhereisコマンドを使います。

black:~$ whereis yes
yes: /usr/bin/yes /usr/share/man/man1/yes.1.gz /usr/src/usr.bin/yes

/usr/src/usr.bin/yesというディレクトリにyes.cというのがあります。

とりあえず見てみます。

・・・省略・・・
#ifndef lint
static const char copyright[] =
"@(#) Copyright (c) 1987, 1993\n\
        The Regents of the University of California.  All rights reserved.\n";
#endif /* not lint */

#ifndef lint
#if 0
static char sccsid[] = "@(#)yes.c       8.1 (Berkeley) 6/6/93";
#else
static const char rcsid[] = "$FreeBSD: src/usr.bin/yes/yes.c,v 1.5 2002/11/09 21:00:39 dwmalone Exp $";
#endif
#endif /* not lint */

#ifndef lintっていうのが何なのかよくわかりませんが、あまり重要でなさそうなので飛ばします。

まず、これ。

#include <err.h>
#include <stdio.h>

err.hを探してみます。

black:~$ sudo find / -type f -name err.h
/usr/include/openssl/err.h
/usr/include/err.h
/usr/src/crypto/openssl/crypto/err/err.h
/usr/src/include/err.h

うーん、複数あるようです。

たぶん、make実行したときに、どれかのerr.hを読んでいると思うのですが、、

今日はここまで。

次回、err.hがどこのディレクトリのものを読み込んでいるのか調べます。

makeについて調べたほうがよいかも。

 |