# color-rg **Repository Path**: emacs-hub/color-rg ## Basic Information - **Project Name**: color-rg - **Description**: 此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: https://github.com/manateelazycat/color-rg.git - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2020-11-29 - **Last Updated**: 2022-10-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # What is color-rg? color-rg is a search and refactoring tool based on ripgrep. I'm a big fan of color-moccur.el, this extension's name is a tribute to color-moccur.el! ## Installation Clone or download this repository (path of the folder is the `` used below). In your `~/.emacs`, add the following two lines: ```Elisp (add-to-list 'load-path "") ; add color-rg to your load-path (require 'color-rg) ``` If you use Mac, you also need to install [exec-path-from-shell](https://github.com/purcell/exec-path-from-shell) ## Usage Bind your favorite key to functions: | Function | Description | | :-------- | :---- | | color-rg-search-input | Search user's input with current directory | | color-rg-search-symbol | Search current symbol with current directory | | color-rg-search-input-in-project | Search user's input in project | | color-rg-search-symbol-in-project | Search current symbol in project | | color-rg-search-symbol-in-current-file | Search current symbol in current file | | color-rg-search-input-in-current-file | Search user's input in current file | | color-rg-search-project-rails | Search user's input in rails project | | color-rg-search-symbol-with-type | Search current symbol with current directory and special file extensions | | color-rg-search-project-with-type | Search user's input in project and special file extensions | | color-rg-search-project-rails-with-type | Search user's input in rails project and special file extensions | ### Keymap for view mode | Key | Description | | :--------: | :---- | | C-a | Jump to first editable position of current line | | Tab | Jump to next match keyword | | Back Tab | Jump to previous match keyword | | j | Jump to next match keyword | | k | Jump to previous match keyword | | h | Jump to next match file | | l | Jump to previous match file | | RET | Open file relative to match line | | Ctrl + m | Open file relative to match line | | r | Replace all matches | | f | Filter results match regexp | | F | Filter results not match regexp | | x | Filter results match file extension | | X | Filter results not match file extension | | u | Don't filter file extension | | D | Delete current line from results | | L | Re-search pattern as literal | | R | Re-search pattern as regexp | | I | Toggle to `include`/`exclude` the ignore files then rerun last search | | C | Toggle to `smart case`/`case sensitive` then rerun last search | | N | Toggle to respect `color-rg-search-ignore-rules` then rerun last search | | O | Rerun last search in new directory | | o | Rerun last search in (up one level) parent directory | | G | Rerun last search only include specified file type | | E | Rerun last search exclude specified file type | | S | Rerun rg with customized arguments. | | e | Enable edit mode | | q | Quit | ### Keymap for edit mode | Key | Description | | :--------: | :---- | | C-a | Jump to first editable position of current line | | C-c C-j | Jump to next match keyword | | C-c C-k | Jump to previous match keyword | | C-c C-h | Jump to next match file | | C-c C-l | Jump to previous match file | | C-c C-RET | Open file relative to match line | | C-c C-v | Disable edit mode | | C-c C-d | Delete current line | | C-c C-D | Delete all lines | | C-c C-r | Recover current line | | C-c C-R | Recover buffer content | | C-c C-q | Quit | | C-c C-c | Apply changed line to files | ### Work with isearch Add this into your emacs config file: ``` (define-key isearch-mode-map (kbd "M-s M-s") 'isearch-toggle-color-rg) ``` When using `isearch-forward', type "M-s M-s" to search current isearch string with color-rg. ### Research with new files `color-rg-rerun-change-files` can limit search files with GLOB. This function used rg arguments '--type', '--add-type'. Default search files is "everything" which means use rg without '--type' argument. If search files is "all", search rg like "rg --type all". Other complete candidates are mostly read from "rg --type-list" command, which is predefined in rg. Of course you can specify your own GLOB, just insert them as you like. For example, if you input a GLOB like `*mypersonalglob*`, which match none of the candidates, then, color-rg will call shell command like: ``` "rg --add-type 'custom:*mypersonalglob*' --type custom ..." ``` ### Research with customized arguments If none of the preset meet your requirements, `color-rg-customized-search` can release the full power of `rg`. When `color-rg-customized-search` is called, the full command of rg will show up, and you can add any argument to rg as in shell. you must escape special characters when using `color-rg-customized-search`, for example: ``` rg --type-add custom\:\*.el # or rg --type-add 'custom:*.el' # or rg --type-add "custom:*.el" ``` ## Contributor