SlideShare a Scribd company logo
1 of 14
Download to read offline
うわ... 私のEmacs力、低すぎ...?
佐野 正浩
自己紹介

• Emacs歴6年 (=Linux歴)
  • 暇な時はひたすら設定していた
• 既存のelispを拡張するくらい
  • elscreen, flymake, websocketなど
• 好きなパッケージ
  • xterm-mouse-mode
  • flymake
  • elscreen
                                     2
Emacs vs Visual Studio

• EmacsはVSよりも良い…?
 •   そんなのは幻想
 •   補完周り、デバッグ機能など機能面で負ける
 •   速度面でもパッケージ入れまくれば遅くなる
 •   VSのemacs(vim)プラグインが結構良いという話




 •   Eclipseはいらない
                                   3
素のEmacsに意味はない

• 拡張性(カスタマイズ力)で勝負
 • キーバインドの柔軟な割り当て
 • 他のスクリプトとの連携
 • 自己満足


• そして全てを組み合わせればVSに近づける...!


                         4
C++の開発力を上げるパッケージ

•   google-c-style
•   flymake
•   auto-complete
•   gtags(GNU GLOBAL)
•   quickrun
•   moccur-edit
•   gdb-mode
                        5
google-c-style

• Google C++ Style Guideに沿ったインデント
  • スペース2つ
  • 細かいインデントの調整は難しいのでこれで統一が楽
  • vim版もあるよ(google.vim)
• インデントの調整のみでその他の項目は強制されない
  • cpplint.pyでチェックする


     ;; google-c-style
     (require 'google-c-style)
     (add-hook 'c-mode-common-hook 'google-set-c-style)
                                                          6
flymake

• リアルタイムにコンパイルして構文エラーを指摘
 • gccでは-fsyntax-onlyで構文チェックのみできる
   • 開発が爆速になる
 • cpplintと組み合わせてスタイルチェックも可能
   • エラー表示が目障りなので直したくなる

 # Makefile
 .PHONY: check-syntax
 check-syntax:
        cpplint.py $(CHK_SOURCES); ¥
        $(CC) $(CFLAGS) –Wall –fsyntax-only $(CHK_SOUCES)
                                                            7
auto-complete

• GNU Emacsのための最も賢い自動補完機能(公式より)
 • 標準機能のdabbrev-expandは何が補完されるかわからない
 • まるでVisual Studio!!
 • 補完候補を柔軟にカスタマイズ可能
• Clangとの連携で文脈に応じた補完が可能
 • emacs-clang-complete-async.el
 • 完全にVisual Studio!!
 • gccにはGCCSenseというのもあるが使うハードルが高すぎる...

                 設定面倒なのでがんばって!
                                         8
gtags(GNU GLOBAL)

• いわゆるTAGS
 • ctagsやetagsよりも高機能
   • 関数呼び出し元ジャンプがある
 • Google Tagsじゃないよ
 • 開発中はもちろんコードリーディング中は必須ツール

• 操作は4つ
    gtags-find-tags     関数の定義元へジャンプ
    gtags-find-rtags    関数の参照元へジャンプ
    gtags-find-symbol   シンボルの利用場所へジャンプ
    gtags-pop-stack     ジャンプ元に戻る         9
moccur-edit(color-moccur)

• color-moccur
  • バッファ、ファイル、ディレクトリから検索(grep)
  • 標準のgrep-findとかより高機能(たぶん)
  • むしろmoccur-editがあるからこれを使う
• moccur-edit
  • color-moccurの検索結果を編集できる
  • 例:recieveとtypoした箇所が複数のファイルにある
    • color-moccurでgrepした後にquery-replaceするだけで全ファイル一括
      置換

                                                 10
quickrun

• 編集中のファイルをモードに合わせて実行
 • quickrun.vimのemacs版
 • smart-compileより良い(?)
 • 特に設定しなくてもほとんどの言語に対応




                          11
gdb-mode

• Emacsを使ったGDBのGUI
 • 割と直感的に使える?
 • 見た目がなんかVS
 • あんまり使ったことない…




                     12
その他

• yasnippet.el
  • 定型コードのテンプレート
• project.el, eproject.el
  • プロジェクト管理
• speedbar, emacs-nav
  • ファイル一覧表示
• elscreen.el
  • タブ表示
                            13
まとめ

• VisualStudioは数万円もするからプロ向けだけど
• Emacsは無料だから初心者向けだよ!




                            fin.

More Related Content

What's hot

暗黒美夢王とEmacs
暗黒美夢王とEmacs暗黒美夢王とEmacs
暗黒美夢王とEmacsShougo
 
2021 01-25 lt sho kato
2021 01-25 lt sho kato2021 01-25 lt sho kato
2021 01-25 lt sho katokatosho1
 
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜Shougo
 
Vagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみようVagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみようTakuma Morikawa
 
neovim = VM
neovim = VMneovim = VM
neovim = VMShougo
 
Vim = VM
Vim = VMVim = VM
Vim = VMShougo
 
Unite vim
Unite vim Unite vim
Unite vim Shougo
 
Flash Playerの作り方
Flash Playerの作り方Flash Playerの作り方
Flash Playerの作り方Yu Kobayashi
 
コンパイラ指向ReVIEW
コンパイラ指向ReVIEWコンパイラ指向ReVIEW
コンパイラ指向ReVIEWMasahiro Wakame
 
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)deris0126
 
JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話sairoutine
 
VimとRubyのアツい関係
VimとRubyのアツい関係VimとRubyのアツい関係
VimとRubyのアツい関係Misao X
 
JS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲームJS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲームsairoutine
 
仮想マシンとVagrant + Vagrant 1.5
仮想マシンとVagrant + Vagrant 1.5仮想マシンとVagrant + Vagrant 1.5
仮想マシンとVagrant + Vagrant 1.5Daisuke Kikuchi
 
Vagrant でお手軽開発環境
Vagrant でお手軽開発環境Vagrant でお手軽開発環境
Vagrant でお手軽開発環境Hideki MACHIDA
 
20121019-jenkins-akiko_pusu.pdf
20121019-jenkins-akiko_pusu.pdf20121019-jenkins-akiko_pusu.pdf
20121019-jenkins-akiko_pusu.pdfakiko_pusu
 
Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF Munenori Sugimura
 
仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会
仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会
仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会Yukihiko SAWANOBORI
 

What's hot (20)

暗黒美夢王とEmacs
暗黒美夢王とEmacs暗黒美夢王とEmacs
暗黒美夢王とEmacs
 
2021 01-25 lt sho kato
2021 01-25 lt sho kato2021 01-25 lt sho kato
2021 01-25 lt sho kato
 
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
 
Cpi mega mix
Cpi mega mixCpi mega mix
Cpi mega mix
 
Vagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみようVagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみよう
 
neovim = VM
neovim = VMneovim = VM
neovim = VM
 
Vim = VM
Vim = VMVim = VM
Vim = VM
 
エディタ戦争
エディタ戦争エディタ戦争
エディタ戦争
 
Unite vim
Unite vim Unite vim
Unite vim
 
Flash Playerの作り方
Flash Playerの作り方Flash Playerの作り方
Flash Playerの作り方
 
コンパイラ指向ReVIEW
コンパイラ指向ReVIEWコンパイラ指向ReVIEW
コンパイラ指向ReVIEW
 
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)
Introduction to Vim plugins developed by non-Japanese Vimmer (Japanese version)
 
JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話
 
VimとRubyのアツい関係
VimとRubyのアツい関係VimとRubyのアツい関係
VimとRubyのアツい関係
 
JS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲームJS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲーム
 
仮想マシンとVagrant + Vagrant 1.5
仮想マシンとVagrant + Vagrant 1.5仮想マシンとVagrant + Vagrant 1.5
仮想マシンとVagrant + Vagrant 1.5
 
Vagrant でお手軽開発環境
Vagrant でお手軽開発環境Vagrant でお手軽開発環境
Vagrant でお手軽開発環境
 
20121019-jenkins-akiko_pusu.pdf
20121019-jenkins-akiko_pusu.pdf20121019-jenkins-akiko_pusu.pdf
20121019-jenkins-akiko_pusu.pdf
 
Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF Perl Beginners #7 おとなのWAF
Perl Beginners #7 おとなのWAF
 
仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会
仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会
仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会
 

Similar to うわ…私のEmacs力、低すぎ...?

Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードKazuhiro Hara
 
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)l_b__
 
20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaoka20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaokabeyond Co., Ltd.
 
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6Ransui Iso
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話terurou
 
Continuous delivery 6
Continuous delivery 6Continuous delivery 6
Continuous delivery 6ShinyaOzawa
 
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)Yoshifumi Yamaguchi
 
Closure Compiler Updates for ES6
Closure Compiler Updates for ES6Closure Compiler Updates for ES6
Closure Compiler Updates for ES6Teppei Sato
 
動画共有ツール
動画共有ツール動画共有ツール
動画共有ツールtamtam180
 
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニングKiyokazu Kaba
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!Masaki Muranaka
 
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform信之 岩永
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!Yohei Fushii
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセスMakoto Kato
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングterurou
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキングTakayuki Kondou
 

Similar to うわ…私のEmacs力、低すぎ...? (20)

Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
 
Grailsのススメ(仮)
Grailsのススメ(仮)Grailsのススメ(仮)
Grailsのススメ(仮)
 
Linux debug
Linux debugLinux debug
Linux debug
 
JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)JellyBeanのソースをとりあえず眺めてみた(手抜き)
JellyBeanのソースをとりあえず眺めてみた(手抜き)
 
20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaoka20191120 beyondstudy#21 kitaoka
20191120 beyondstudy#21 kitaoka
 
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話
 
Continuous delivery 6
Continuous delivery 6Continuous delivery 6
Continuous delivery 6
 
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)
 
Closure Compiler Updates for ES6
Closure Compiler Updates for ES6Closure Compiler Updates for ES6
Closure Compiler Updates for ES6
 
動画共有ツール
動画共有ツール動画共有ツール
動画共有ツール
 
OSC 2011 KeySnail
OSC 2011 KeySnailOSC 2011 KeySnail
OSC 2011 KeySnail
 
Golang tokyo #7 qtpm
Golang tokyo #7 qtpmGolang tokyo #7 qtpm
Golang tokyo #7 qtpm
 
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
 
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
 
.NET Compiler Platform
.NET Compiler Platform.NET Compiler Platform
.NET Compiler Platform
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
 

Recently uploaded

プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 

Recently uploaded (8)

プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 

うわ…私のEmacs力、低すぎ...?

  • 2. 自己紹介 • Emacs歴6年 (=Linux歴) • 暇な時はひたすら設定していた • 既存のelispを拡張するくらい • elscreen, flymake, websocketなど • 好きなパッケージ • xterm-mouse-mode • flymake • elscreen 2
  • 3. Emacs vs Visual Studio • EmacsはVSよりも良い…? • そんなのは幻想 • 補完周り、デバッグ機能など機能面で負ける • 速度面でもパッケージ入れまくれば遅くなる • VSのemacs(vim)プラグインが結構良いという話 • Eclipseはいらない 3
  • 4. 素のEmacsに意味はない • 拡張性(カスタマイズ力)で勝負 • キーバインドの柔軟な割り当て • 他のスクリプトとの連携 • 自己満足 • そして全てを組み合わせればVSに近づける...! 4
  • 5. C++の開発力を上げるパッケージ • google-c-style • flymake • auto-complete • gtags(GNU GLOBAL) • quickrun • moccur-edit • gdb-mode 5
  • 6. google-c-style • Google C++ Style Guideに沿ったインデント • スペース2つ • 細かいインデントの調整は難しいのでこれで統一が楽 • vim版もあるよ(google.vim) • インデントの調整のみでその他の項目は強制されない • cpplint.pyでチェックする ;; google-c-style (require 'google-c-style) (add-hook 'c-mode-common-hook 'google-set-c-style) 6
  • 7. flymake • リアルタイムにコンパイルして構文エラーを指摘 • gccでは-fsyntax-onlyで構文チェックのみできる • 開発が爆速になる • cpplintと組み合わせてスタイルチェックも可能 • エラー表示が目障りなので直したくなる # Makefile .PHONY: check-syntax check-syntax: cpplint.py $(CHK_SOURCES); ¥ $(CC) $(CFLAGS) –Wall –fsyntax-only $(CHK_SOUCES) 7
  • 8. auto-complete • GNU Emacsのための最も賢い自動補完機能(公式より) • 標準機能のdabbrev-expandは何が補完されるかわからない • まるでVisual Studio!! • 補完候補を柔軟にカスタマイズ可能 • Clangとの連携で文脈に応じた補完が可能 • emacs-clang-complete-async.el • 完全にVisual Studio!! • gccにはGCCSenseというのもあるが使うハードルが高すぎる... 設定面倒なのでがんばって! 8
  • 9. gtags(GNU GLOBAL) • いわゆるTAGS • ctagsやetagsよりも高機能 • 関数呼び出し元ジャンプがある • Google Tagsじゃないよ • 開発中はもちろんコードリーディング中は必須ツール • 操作は4つ gtags-find-tags 関数の定義元へジャンプ gtags-find-rtags 関数の参照元へジャンプ gtags-find-symbol シンボルの利用場所へジャンプ gtags-pop-stack ジャンプ元に戻る 9
  • 10. moccur-edit(color-moccur) • color-moccur • バッファ、ファイル、ディレクトリから検索(grep) • 標準のgrep-findとかより高機能(たぶん) • むしろmoccur-editがあるからこれを使う • moccur-edit • color-moccurの検索結果を編集できる • 例:recieveとtypoした箇所が複数のファイルにある • color-moccurでgrepした後にquery-replaceするだけで全ファイル一括 置換 10
  • 11. quickrun • 編集中のファイルをモードに合わせて実行 • quickrun.vimのemacs版 • smart-compileより良い(?) • 特に設定しなくてもほとんどの言語に対応 11
  • 12. gdb-mode • Emacsを使ったGDBのGUI • 割と直感的に使える? • 見た目がなんかVS • あんまり使ったことない… 12
  • 13. その他 • yasnippet.el • 定型コードのテンプレート • project.el, eproject.el • プロジェクト管理 • speedbar, emacs-nav • ファイル一覧表示 • elscreen.el • タブ表示 13