「locate を使うための設定(WSL 設定編)」の編集履歴(バックアップ)一覧はこちら

locate を使うための設定(WSL 設定編)」の最新版変更点

追加された行は青色になります。

削除された行は赤色になります。

 &bold(){■ Windows Subsystem for Linux の emacs で利用できる設定}
 ----
 
 &bold(){【お知らせ】}
 ----
 
 &bold(){<2018/08/28 追記>}
 Cygwin での locate の利用については、こちらを参照ください。
 ・[[locate を使うための設定]]
 
 &bold(){【本題】}
 ----
 
 Ubuntu on WSL で locate を利用するための設定です。
 
 Ubuntu の locate には以下で説明されているとおり、2つのパッケージがあります。
 ・http://d.hatena.ne.jp/kitokitoki/20091025/p2
 デフォルトでは、mlocate がインストールされていますが、mlocate の updatedb は複数の database root パスを指定できないため、使いづらいです。
 このため、locate.findutils をインストールします。
  $ sudo -E apt install locate
  $ sudo update-alternatives --config locate # locate.findutils を有効にする
 
 つぎに、locateを使うためのDBを以下のようなスクリプトを実行して作成します。updatedb のオプションは、適当に修正してください。
 
 ~/bin/updatedb.sh
  #!/bin/sh
  
  sudo updatedb \
      --localpaths='
  /mnt/c/home
  /mnt/d/home
  /mnt/server/home
  ' \
      --findoptions='
  -type d -name .git -prune -o
  -type d -name .svn -prune -o
  -path /mnt/c/home/tmp -prune -o
  -path /mnt/d/home/tmp -prune
  '
 
 findoptions の設定の意味は、次のとおりです。
 
  一行目:ディレクトリ.git は含めない
- 三行目:/mnt/c/home1/tmp で始まるパスは含めない
+ 三行目:/mnt/c/home/tmp で始まるパスは含めない
 
 これで、shell から locate <検索文字列> と入力して、検索が可能となります。
 emacs からは、M-x locate で実行できます。
 
 ※ &bold(){locate の検索に時間が掛かる場合は、データベース化するディレクトリの範囲を絞ってください。}
 
 検索結果は、dired のように、Enter や f が利用可能ですが、以下の設定を行っておくと、より便利に利用できます。
  (require 'locate)
  
  ;; ファイルのあるディレクトリを explorer で開く
  (define-key locate-mode-map (kbd "E")
    (lambda ()
      (interactive)
      (os-open-command (locate-get-dirname))))
  
  ;; ファイルのあるディレクトリを dired で開く
  (define-key locate-mode-map (kbd "d")
    (lambda ()
      (interactive)
      (dired (locate-get-dirname))))
  
  ;; C-c l で locate を起動する
  (global-set-key (kbd "C-c l") 'locate)
 ※ 上記の設定の os-open-command は、「[[dired を OS と連携して使うための設定]]」で紹介したものと同じものを利用しています。
  「[[dired を OS と連携して使うための設定]]」で行った W キーや find-file の設定も、locate の検索結果の画面で利用可能です。
 
 locate は helm とも連携できます。
  ;; locateコマンドのパラメータを指定する
  (setq helm-locate-command "locate %s -A --regex %s")
 ※ helm の設定については、以下を参照してください。
 ・[[helm を使うための設定]]
 
 ----
 <変更履歴>
 ・2018/08/26 このページを作成した。
 
 ----
 #javascript(){{
 <script>
   (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
   (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
   m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
   })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
   ga('create', 'UA-40267130-1', 'atwiki.jp');
   ga('send', 'pageview');
 
 </script>
 }}