100日書いたらどうなるか?

ブログを100日書いたら文章や内容がどうなるかを検証する

17日目 Emacsのgtagsの設定の認識が間違っていた

今までWindows環境変数にglobal\binまでのパスを追加しなくてもいける方法があると思って色々調べていたが、 globalの配布ページに、「 Windows環境変数PATH に C:\usr\global\bin を追加し、・・」の記載があり、やっぱりWindowsのシステム環境変数にglobal/binのパスを追加しないとダメなようだった。

cha.la.coocan.jp

インストール方法 C:\usr\global\ 以下に上記で提供されているファイル(zipを展開したもの)を全部コピーする。 Windows環境変数PATH に C:\usr\global\bin を追加し、PCを再起動する等により環境変数を有効化する Emacs の site-lisp ディレクトリに C:\usr\global\share\gtags\gtags.el をコピーする。 .emacs にgtags.elの設定をする。

16日目 Emacsの環境変数の設定

Emacs環境変数を設定するためのinit.elの書き方を示す。

;; gtagのパスを設定
(setenv "PATH" (concat "E:\\home\\.emacs.d\\glo665wb\\bin;" (getenv "PATH")))

自分は、.emacs.dの下にglo665wbを配置した。 パスを書く上での注意点は、バックスラッシュを使うことと、binのあとのセミコロン(;)です。 process-environmentの値を確認するとどう書けばよいかわかります。

このコードの意味は、 concat関数を使用して、指定したディレクトリと既存のPATHの値(getenv "PATH")を連結し、 それをsetenv関数を使用してPATH環境変数に設定している。 これにより、process-environmentに新しい値を追加される。

process-environmentの値の確認方法は、 C-h v で process-environment と入力すると確認できる。

15日目 Emacsでmarkdownを書く

なぜ今Emacsなのかは、個人的にEmacsが好きだから、MarkdownEmacsで書けたらいいんじゃないかと思ったので試してみました。

Emacsmarkdownを書くための準備


markdown-mode のインストール

ミニバッファに以下を入力する

M-x package-list-packages[Enter]

markdown-modeを探す

markdown-mode インストール画面

インストールをクリックする。または、カーソルを「Install」の部分に移動して、[Enter]を押す。

markdown-mode インストール画面2

Emacs を再起動する。

試しに、Markdownファイルを開いてみる。

ここまでで、markdownファイルを開くことができた。

markdownプレビュー機能の設定


やはり、このままだと完成イメージが見えないので、 markdownプレビュー機能を導入する。

M-x package-list-packages から上記と同様に、 markdown-preview-mode を選択しインストールする。

markdown-previewのインストール画面

Emacsを再起動する。

お試しでmarkdown-preview-modeを起動してみる。

markdownファイル(test.md)を開いて、

M-x markdown-preview-mode

を入力する。

 markdown: command not foundというメッセージで怒られた。 何やら、コマンドが見つからないらしい。

どうやら、Perlを入れる必要があるらしい。

以下を参考にさせていただき、strawberry-perlをインストールし、markdown.plをダウンロードした。

参考: qiita.com

strawberryperl.com

自分は strawberry-perl-5.32.1.1-64bit.msi  をインストールした。

daringfireball.net

上記でダウンロードしたmarkdown.plをパスが通っているフォルダに格納する。 (参考にしたブログと同じように、C:\Strawberry\perl\site\bin に配置)

init.elに以下を追加する

;; markdownのコマンドのパス追加
(setq markdown-command "perl C:/strawberry/perl/site/bin/Markdown.pl")

Emacsを再起動して、確認

ミニバッファで

C-c C-c p

でプレビューを実行

一応、Webブラウザでの確認もできた。 使い勝手はいかに、、

14日目 Emacsのヘルプについて

今まで結構Emacsを使ってきたが、基本的な機能しか使用していませんでした。 まだまだEmacsを使い続けたいと思っているので、今後はEmacsのコマンドや関数などをネット検索ではなく、Emacsのヘルプで調べられたらいいなと思い、 Emacsのヘルプコマンドについて書いておきます。

ヘルプコマンド

 C-h、<f1>

よく使うヘルプコマンド

  • 入力した文字列が含まれているコマンドをリストアップする

 C-h a 文字列 <RET>

 C-h k キーバインド <RET>

  • コマンドの説明を表示する

 C-h w コマンド名 <RET>

  • 現在、割り当てられている機能を確認する

 C-h b <RET>

  • 関数の説明を表示する

 C-h f 関数名 <RET>

  • 変数の説明を表示する

 C-h v 変数名 <RET>

13日目 Emacsの設定メモ

また期間が空いてしまってます。定期的に書けよって感じですね。

Emacsの設定で便利なものを知ったのでメモしておきます。

ウィンドウの切り替えを C-tab で行う

;; "C-tab"でウィンドウを切り替える
(define-key global-map (kbd "<C-tab>") 'other-window)

emacsでは、通常 C-x o を入力することでウィンドウの切り替えを行いますが、C-tabに割り当てておけば、切り替えが非常に楽になります。

Emacs実践入門という本で紹介されていた方法は、C-t に割り当てる方法でしたが、自分はC-tをgtagで使用しているため、C-tabに割り当てることにしました。

サクラエディタなどでもタブの切り替えでC-tabを使うので直感的にわかりやすいかなと思っています。

11日目 関数のネスト

10日目からめっちゃ間空いてしまいました。

ツイッターでたまたま関数のネストについてみたので書いておきます。 こんな感じでC言語でも関数をネストさせることができる。 普段、関数をネストさせることなんてないから全然気にしてなかったけど、こんな書き方もできるんだね。

#include <stdio.h>

void func1( void )
{
    void func2( char *str )
    {
        printf("%s\n", str);
    }
    func2("test");
}

int main( void )
{
    func1();
}