{"id":13649596,"url":"https://github.com/jrblevin/deft","last_synced_at":"2025-05-16T18:06:17.531Z","repository":{"id":33065985,"uuid":"36702593","full_name":"jrblevin/deft","owner":"jrblevin","description":"Deft for Emacs","archived":false,"fork":false,"pushed_at":"2024-04-07T01:49:26.000Z","size":270,"stargazers_count":701,"open_issues_count":52,"forks_count":86,"subscribers_count":29,"default_branch":"master","last_synced_at":"2024-04-07T02:51:31.531Z","etag":null,"topics":["emacs","emacs-mode","filter-string","note-taking","plain-text","search"],"latest_commit_sha":null,"homepage":"http://jblevins.org/projects/deft/","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jrblevin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-06-02T02:28:35.000Z","updated_at":"2024-05-30T01:27:33.161Z","dependencies_parsed_at":"2024-04-07T02:40:13.565Z","dependency_job_id":"a8dff2a1-46e1-4d36-952f-4edd2e0d93cd","html_url":"https://github.com/jrblevin/deft","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrblevin%2Fdeft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrblevin%2Fdeft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrblevin%2Fdeft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrblevin%2Fdeft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jrblevin","download_url":"https://codeload.github.com/jrblevin/deft/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248597953,"owners_count":21130987,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emacs","emacs-mode","filter-string","note-taking","plain-text","search"],"created_at":"2024-08-02T02:00:20.897Z","updated_at":"2025-04-12T16:38:57.199Z","avatar_url":"https://github.com/jrblevin.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp","Open Source"],"sub_categories":["Editor Plugin"],"readme":"# Deft for Emacs [![MELPA badge][melpa-badge]][melpa-link] [![MELPA stable badge][melpa-stable-badge]][melpa-stable-link] [![Travis CI Build Status][travis-badge]][travis-link]\n\n  [melpa-link]: https://melpa.org/#/deft\n  [melpa-stable-link]: https://stable.melpa.org/#/deft\n  [melpa-badge]: https://melpa.org/packages/deft-badge.svg\n  [melpa-stable-badge]: https://stable.melpa.org/packages/deft-badge.svg\n  [travis-link]: https://travis-ci.org/jrblevin/deft\n  [travis-badge]: https://travis-ci.org/jrblevin/deft.svg?branch=master\n\n\u003c!-- Automatically generated from comments in deft.el. --\u003e\n\nDeft is an Emacs mode for quickly browsing, filtering, and editing\ndirectories of plain text notes, inspired by Notational Velocity.\nIt was designed for increased productivity when writing and taking\nnotes by making it fast and simple to find the right file at the\nright time and by automating many of the usual tasks such as\ncreating new files and saving files.\n\n![Deft Screencast](https://jblevins.org/projects/deft/deft-v0.6.gif)\n\nObtaining Deft\n--------------\n\nDeft is open source software and may be freely distributed and\nmodified under the BSD license.  The latest stable release is\nversion 0.8, released on January 12, 2018.\n\n**Installation via MELPA Stable**\n\nThe recommended way to install Deft is to obtain the stable version\nfrom [MELPA Stable](https://stable.melpa.org/#/deft) using\n`package.el`.  First, configure `package.el` and the MELPA Stable\nrepository by adding the following to your `.emacs`, `init.el`, or\nequivalent startup file:\n\n    (require 'package)\n    (add-to-list 'package-archives\n                 '(\"melpa-stable\" . \"https://stable.melpa.org/packages/\"))\n    (package-initialize)\n\nThen, after restarting Emacs or evaluating the above statements, issue\nthe following command: \u003ckbd\u003eM-x package-install RET deft RET\u003c/kbd\u003e.\n\n[MELPA Stable]: http://stable.melpa.org/\n\n**Direct Download**\n\nAlternatively you can manually download and install Deft.\nFirst, download the latest stable version of and save the file\nwhere Emacs can find it---a directory in your `load-path`:\n\n  * [deft.el](https://jblevins.org/projects/deft/deft.el)\n\nThen, add the following line to your startup file:\n\n    (require 'deft)\n\n**Development Version**\n\nTo follow or contribute to Deft development, you can browse or\nclone the Git repository [on GitHub](https://github.com/jrblevin/deft):\n\n    git clone https://github.com/jrblevin/deft.git\n\nIf you prefer to install and use the development version, which may\nbecome unstable at some times, you can either clone the Git\nrepository as above or install Deft from\n[MELPA](https://melpa.org/#/deft).\n\nIf you clone the repository directly, then make sure that Emacs can\nfind it by adding the following line to your startup file:\n\n    (add-to-list 'load-path \"/path/to/deft/repository\")\n\nOverview\n--------\n\nThe Deft buffer is simply a file browser which lists the titles of\nall text files in the Deft directory followed by short summaries\nand last modified times.  The title is taken to be the first line\nof the file and the summary is extracted from the text that\nfollows.  Files are, by default, sorted in terms of the last\nmodified date, from newest to oldest.\n\nAll Deft files or notes are simple plain text files where the first\nline contains a title.  As an example, the following directory\nstructure generated the screenshot above.\n\n    % ls ~/.deft\n    about.txt    browser.txt     directory.txt   operations.txt\n    ack.txt      completion.txt  extensions.org\n    binding.txt  creation.txt    filtering.txt\n\n    % cat ~/.deft/about.txt\n    # About\n\n    An Emacs mode for slicing and dicing plain text files.\n\nDeft's primary operation is searching and filtering.  The list of\nfiles can be limited or filtered using a search string, which will\nmatch both the title and the body text.  To initiate a filter,\nsimply start typing.  Filtering happens on the fly.  As you type,\nthe file browser is updated to include only files that match the\ncurrent string.\n\nTo open the first matching file, simply press \u003ckbd\u003eRET\u003c/kbd\u003e.  If no files\nmatch your search string, pressing \u003ckbd\u003eRET\u003c/kbd\u003e will create a new file\nusing the string as the title.  This is a very fast way to start\nwriting new notes.  The filename will be generated automatically.\nIf you prefer to provide a specific filename, use \u003ckbd\u003eC-RET\u003c/kbd\u003e instead.\n\nTo open files other than the first match, navigate up and down\nusing \u003ckbd\u003eC-p\u003c/kbd\u003e and \u003ckbd\u003eC-n\u003c/kbd\u003e and press \u003ckbd\u003eRET\u003c/kbd\u003e on the file you want to open.\nWhen opening a file, Deft searches forward and leaves the point\nat the end of the first match of the filter string.\n\nYou can also press \u003ckbd\u003eC-o\u003c/kbd\u003e to open a file in another window, without\nswitching to the other window.  Issue the same command with a prefix\nargument, \u003ckbd\u003eC-u C-o\u003c/kbd\u003e, to open the file in another window and switch\nto that window.\n\nTo edit the filter string, press `DEL` (backspace) to remove the\nlast character or \u003ckbd\u003eM-DEL\u003c/kbd\u003e to remove the last \"word\".  To yank\n(paste) the most recently killed (cut or copied) text into the\nfilter string, press \u003ckbd\u003eC-y\u003c/kbd\u003e.  Press \u003ckbd\u003eC-c C-c\u003c/kbd\u003e to clear the filter\nstring and display all files and \u003ckbd\u003eC-c C-g\u003c/kbd\u003e to refresh the file\nbrowser using the current filter string.\n\nFor more advanced editing operations, you can also edit the filter\nstring in the minibuffer by pressing \u003ckbd\u003eC-c C-l\u003c/kbd\u003e.  While in the\nminibuffer, the history of previous edits can be cycled through by\npressing \u003ckbd\u003eM-p\u003c/kbd\u003e and \u003ckbd\u003eM-n\u003c/kbd\u003e.  This form of static, one-time filtering\n(as opposed to incremental, on-the-fly filtering) may be preferable\nin some situations, such as over slow connections or on systems\nwhere interactive filtering performance is poor.\n\nBy default, Deft filters files in incremental string search mode,\nwhere \"search string\" will match all files containing both \"search\"\nand \"string\" in any order.  Alternatively, Deft supports direct\nregexp filtering, where the filter string is interpreted as a\nformal regular expression.  For example, `^\\(foo\\|bar\\)` matches\nfoo or bar at the beginning of a line.  Pressing \u003ckbd\u003eC-c C-t\u003c/kbd\u003e will\ntoggle between incremental and regexp search modes.  Regexp\nsearch mode is indicated by an \"R\" in the mode line.\n\nCommon file operations can also be carried out from within Deft.\nFiles can be renamed using \u003ckbd\u003eC-c C-r\u003c/kbd\u003e or deleted using \u003ckbd\u003eC-c C-d\u003c/kbd\u003e.\nNew files can also be created using \u003ckbd\u003eC-c C-n\u003c/kbd\u003e for quick creation or\n\u003ckbd\u003eC-c C-m\u003c/kbd\u003e for a filename prompt; with a prefix argument, these operations\nask for a file extension.  You can leave Deft at any time with \u003ckbd\u003eC-c C-q\u003c/kbd\u003e.\n\nUnused files can be archived by pressing \u003ckbd\u003eC-c C-a\u003c/kbd\u003e.  Files will be\nmoved to `deft-archive-directory`, which is a directory named\n`archive` within your `deft-directory` by default.\n\nFiles opened with deft are automatically saved after Emacs has been\nidle for a customizable number of seconds.  This value is a floating\npoint number given by `deft-auto-save-interval` (default: 1.0).\n\nGetting Started\n---------------\n\nOnce you have installed Deft following one of the above methods,\nyou can simply run \u003ckbd\u003eM-x deft\u003c/kbd\u003e to start Deft.  It is useful\nto create a global keybinding for the `deft` function (e.g., a\nfunction key) to start it quickly (see below for details).\n\nWhen you first run Deft, it will complain that it cannot find the\n`~/.deft` directory.  You can either create a symbolic link to\nanother directory where you keep your notes or run \u003ckbd\u003eM-x deft-setup\u003c/kbd\u003e\nto create the `~/.deft` directory automatically.\n\nOne useful way to use Deft is to keep a directory of notes in a\nDropbox folder.  This can be used with other applications and\nmobile devices, for example, [nvALT][], [Notational Velocity][], or\n[Simplenote][] on OS X or [Editorial][], [Byword][], or [1Writer][]\non iOS.\n\n[nvALT]: http://brettterpstra.com/projects/nvalt/\n[Notational Velocity]: http://notational.net/\n[Simplenote]: http://simplenote.com/\n[Editorial]: https://geo.itunes.apple.com/us/app/editorial/id673907758?mt=8\u0026uo=6\u0026at=11l5Vs\u0026ct=deft\n[Byword]: https://geo.itunes.apple.com/us/app/byword/id482063361?mt=8\u0026uo=6\u0026at=11l5Vs\u0026ct=deft\n[1Writer]: https://geo.itunes.apple.com/us/app/1writer-note-taking-writing/id680469088?mt=8\u0026uo=6\u0026at=11l5Vs\u0026ct=deft\n\nBasic Customization\n-------------------\n\nYou can customize items in the `deft` group to change the default\nfunctionality.\n\nBy default, Deft looks for notes by searching for files with the\nextensions `.txt`, `.text`, `.md`, `.markdown`, or `.org` in the\n`~/.deft` directory.  You can customize both the file extension and\nthe Deft directory by running \u003ckbd\u003eM-x customize-group\u003c/kbd\u003e and typing\n`deft`.  Alternatively, you can configure them in your `.emacs`\nfile:\n\n    (setq deft-extensions '(\"txt\" \"tex\" \"org\"))\n    (setq deft-directory \"~/Dropbox/notes\")\n\nThe first element of `deft-extensions` (or in Lisp parlance, the\ncar) is the default extension used to create new files.\n\nBy default, Deft only searches for files in `deft-directory` but\nnot in any subdirectories.  All files in `deft-directory` with one\nof the specified extensions will be included except for those\nmatching `deft-ignore-file-regexp`.  Set `deft-recursive` to a\nnon-nil value to enable searching for files in subdirectories\n(those not matching `deft-recursive-ignore-dir-regexp`):\n\n    (setq deft-recursive t)\n\nYou can easily set up a global keyboard binding for Deft.  For\nexample, to bind it to F8, add the following code to your `.emacs`\nfile:\n\n    (global-set-key [f8] 'deft)\n\nIf you manage loading packages with [use-package][], then you can\nconfigure by adding a declaration such as this one to your init\nfile:\n\n    (use-package deft\n      :bind (\"\u003cf8\u003e\" . deft)\n      :commands (deft)\n      :config (setq deft-directory \"~/Dropbox/notes\"\n                    deft-extensions '(\"md\" \"org\")))\n\n[use-package]: https://github.com/jwiegley/use-package\n\nReading Files\n-------------\n\nThe displayed title of each file is taken to be the first line of\nthe file, with certain characters removed from the beginning.  Hash\ncharacters, as used in Markdown headers, and asterisks, as in Org\nMode headers, are removed.  Additionally, Org mode `#+TITLE:` tags,\nMultiMarkdown `Title:` tags, LaTeX comment markers, and\nEmacs mode-line declarations (e.g., `-*-mode-*-`) are stripped from\ndisplayed titles.  This can be customized by changing\n`deft-strip-title-regexp`.\n\nMore generally, the title post-processing function itself can be\ncustomized by setting `deft-parse-title-function`, which accepts\nthe first line of the file as an argument and returns the parsed\ntitle to display in the file browser.  The default function is\n`deft-strip-title`, which removes all occurrences of\n`deft-strip-title-regexp` as described above.\n\nFor compatibility with other applications which use the filename as\nthe title of a note (rather than the first line of the file), set the\n`deft-use-filename-as-title` flag to a non-`nil` value.  Deft will then\nuse note filenames to generate the displayed titles in the Deft\nfile browser.  To enable this, add the following to your `.emacs` file:\n\n    (setq deft-use-filename-as-title t)\n\nFinally, the short summary that is displayed following the file\ntitle can be customized by changing `deft-strip-summary-regexp`.  By\ndefault, this is set to remove certain org-mode metadata statements\nsuch as `#+OPTIONS:` and `#+AUTHOR:`.\n\nCreating Files\n--------------\n\nFilenames for newly created files are generated by Deft automatically.\nThe process for doing so is determined by the variables\n`deft-use-filename-as-title` and `deft-use-filter-string-for-filename`\nas well as the rules in the `deft-file-naming-rules` alist.\nThe possible cases are as follows:\n\n1.  **Default** (`deft-use-filename-as-title` and\n    `deft-use-filter-string-for-filename` are both `nil`):\n\n    The filename will be automatically generated using an short,\n    ISO-like timestamp as in `2016-05-12T09:00.txt`.  The format\n    can be customized by setting the variable\n    `deft-new-file-format`.  The filter string will be inserted as\n    the first line of the file (which is also used as the display\n    title).  In case of file name conflicts, an underscore and a\n    numerical suffix (e.g., `_2`) will be appended before the\n    extension.\n\n2.  **Filenames as titles** (`deft-use-filename-as-title` is non-`nil`):\n\n    When `deft-use-filename-as-title` is non-`nil`, the filter string\n    will be used as the filename for new files (with the appropriate\n    file extension appended to the end).  An example of new file creation\n    in this case:\n\n      * Filter string: \"My New Project\"\n      * File name: \"My New Project.txt\"\n      * File contents: [empty]\n\n3.  **Readable filenames** (`deft-use-filename-as-title` is\n    `nil` but `deft-use-filter-string-for-filename` is non-`nil`):\n\n    In this case you can choose to display the title as parsed from\n    the first line of the file while also generating readable\n    filenames for new files based on the filter string.  The\n    variable `deft-use-filter-string-for-filename` controls this\n    behavior and decouples the title display\n    (`deft-use-filename-as-title`) from the actual filename.  New\n    filenames will be generated from the filter string and\n    processed according to the rules defined in the\n    `deft-file-naming-rules` alist.  By default, slashes are removed\n    and replaced by hyphens, but many other options are possible\n    (camel case, replacing spaces by hyphens, and so on).  See the\n    documentation for `deft-file-naming-rules` for additional\n    details.\n\n    As an example, with the following value for\n    `deft-file-naming-rules`, Deft will replace all slashes and\n    spaces with hyphens and will convert the file name to\n    lowercase:\n\n        (setq deft-file-naming-rules\n              '((noslash . \"-\")\n                (nospace . \"-\")\n                (case-fn . downcase)))\n\n    Below is an example in this case, with the above file naming\n    rules.  Notice that the filter string is inserted as the first\n    line of the file but it is also used to generate a \"readable\"\n    file name.\n\n      * Filter string: \"My New Project\"\n      * File name: \"my-new-project.txt\"\n      * File contents: \"My New Project\"\n\nTitles inserted into files from the filter string can also be\ncustomized for two common modes, `markdown-mode` and `org-mode`, by\nsetting the following variables:\n\n* `deft-markdown-mode-title-level` - When set to a positive\n  integer, determines how many hash marks will be added to titles\n  in new Markdown files.  In other words, setting\n  `deft-markdown-mode-title-level` to \u003ckbd\u003e2\u003c/kbd\u003e will result in new files\n  being created with level-2 headings of the form `## Title`.\n\n* `deft-org-mode-title-prefix` - When non-nil, automatically\n  generated titles in new `org-mode` files will be prefixed with\n  `#+TITLE:`.\n\nOther Customizations\n--------------------\n\nDeft, by default, lists files from newest to oldest.  You can set\n`deft-current-sort-method` to 'title to sort by file titles, case\nignored.  Or, you can toggle sorting method using\n`deft-toggle-sort-method`.\n\nIncremental string search is the default method of filtering on\nstartup, but you can set `deft-incremental-search` to nil to make\nregexp search the default.\n\nDeft also provides a function for opening files without using the\nDeft buffer directly.  Calling `deft-find-file` will prompt for a\nfile to open, much like `find-file`, but limits consideration to\nfiles in `deft-directory` that are known to Deft (i.e., those files\nmatching `deft-extensions`).  Unlike `find-file`, a list of all\nsuch files is provided and the desired file name can be completed\nusing `completing-read` (and, as a result, `deft-find-file` will\nread/complete filenames using ido, helm, etc.  when enabled).  If\nthe selected file is in `deft-directory`, it is opened with the\nusual Deft features (automatic saving, automatic updating of the\nDeft buffer, etc.).  Otherwise, the file will be opened by\n`find-file` as usual.  Therefore, you can set up a global\nkeybinding for this function to open Deft files anywhere.  For\nexample, to use \u003ckbd\u003eC-x C-g\u003c/kbd\u003e, a neighbor of \u003ckbd\u003eC-x C-f\u003c/kbd\u003e, use the\nfollowing:\n\n    (global-set-key (kbd \"C-x C-g\") 'deft-find-file)\n\nThe faces used for highlighting various parts of the screen can\nalso be customized.  By default, these faces inherit their\nproperties from the standard font-lock faces defined by your current\ncolor theme.\n\nDeft also provides several hooks: `deft-mode-hook`,\n`deft-filter-hook`, and `deft-open-file-hook`.  See the\ndocumentation for these variables for further details.\n\nAcknowledgments\n---------------\n\nThanks to Konstantinos Efstathiou for writing simplenote.el, from\nwhich I borrowed liberally, and to Zachary Schneirov for writing\nNotational Velocity, whose functionality and spirit I wanted to\nbring to Emacs.\n\nHistory\n-------\n\nVersion 0.8 (2018-01-12):\n\n* Limit `deft-find-file` to files known to Deft and support\n  completing-read.\n* Keep subdirectory portion when displaying filenames.\n* New variable `deft-width-offset` for custom summary line width\n  offset.\n* Attempt to restore point after refreshing browser and preserve\n  position while filtering.\n* Add hooks: `deft-filter-hook` for filter string changes and\n  `deft-open-file-hook` which runs after opening a file.\n* Prevent spurious Deft browser refreshes, which fixes an issue\n  with `sublimity-mode`.\n* More reliable browser updates when window size changes.\n* Only update width when buffer is visible.\n* Lazily update the Deft buffer after saving files.\n* Close open buffer when deleting a file.\n* Initialize width even when started in background.\n* Omit files generated from org or markdown.\n* Custom format string `deft-new-file-format` for new file names.\n* Reduce summary line width when there is no fringe.\n* Support Org links.\n* Option `deft-filter-only-filenames` to filter only on file names.\n\nVersion 0.7 (2015-12-21):\n\n* Add custom regular expression `deft-strip-summary-regexp` for\n  stripping extraneous text for generating the summary line.  Strip\n  all `org-mode` metadata by default.\n* New customizable regular expressions for ignoring files and\n  directories.  See `deft-recursive-ignore-dir-regexp` and\n  `deft-ignore-file-regexp`.\n* Bug fix: Prevent lines from wrapping in console mode.\n* Bug fix: Setup `deft-extensions` and `deft-default-extension` at\n  load time.\n* Bug fix: Try to prevent false title matches in org-mode notes\n  where the string `#+TITLE:` might also appear in the body.\n* Bug fix: Use `with-current-buffer` instead of `save-excursion`\n  while auto-saving files since we do not want to save the point.\n* Bug fix: Don't escape quotes in `deft-file-naming-rules`.\n\nVersion 0.6 (2015-06-26):\n\n* Recursive search in subdirectories (optional).  Set\n  `deft-recursive` to a non-nil value to enable.\n* Support for multiple extensions via the `deft-extensions` list.\n  As such, `deft-extension` is now deprecated.\n* New variable `deft-create-file-from-filter-string` can enable\n  generation of new filenames based on the filter string.  This decouples\n  the title display (`deft-use-filename-as-title`) from the actual filename\n  generation.\n* New variable `deft-file-naming-rules` allows customizing generation\n  of filenames with regard to letter case and handling of spaces.\n* New variables `deft-markdown-mode-title-level` and\n  `deft-org-mode-title-prefix` for automatic insertion of title markup.\n* Archiving of files in `deft-archive-directory`.\n* Ability to sort by either title or modification time via\n  `deft-current-sort-method`.\n* Update default `deft-strip-title-regexp` to remove the following:\n    - org-mode `#+TITLE:` tags\n    - MultiMarkdown `Title:` tags\n    - LaTeX comment markers\n    - Emacs mode-line declarations (e.g., `-*-mode-*-`)\n* Remove leading and trailing whitespace from titles.\n* Disable visual line mode to prevent lines from wrapping.\n* Enable line truncation to avoid displaying truncation characters.\n* Show the old filename as the default prompt when renaming a file.\n* Call `hack-local-variables` to read file-local variables when\n  opening files.\n* Fixed several byte-compilation warnings.\n* Bug fix: more robust handling of relative and absolute filenames.\n* Bug fix: use width instead of length of strings for calculations.\n* Bug fix: fix `string-width` error with empty file.\n\nVersion 0.5.1 (2013-01-28):\n\n* Bug fix: creating files with \u003ckbd\u003eC-c C-n\u003c/kbd\u003e when both the filter string and\n  `deft-use-filename-as-title` are non-nil resulted in an invalid path.\n* Bug fix: killed buffers would persist in `deft-auto-save-buffers`.\n\nVersion 0.5 (2013-01-25):\n\n* Implement incremental string search (default) and regexp search.\n  These search modes can be toggled by pressing \u003ckbd\u003eC-c C-t\u003c/kbd\u003e.\n* Default search method can be changed by setting `deft-incremental-search`.\n* Support custom `deft-parse-title-function` for post-processing titles.\n* The default `deft-parse-title-function` simply strips occurrences of\n  `deft-strip-title-regexp`, which removes Markdown and Org headings.\n* Open files in another window with \u003ckbd\u003eC-o\u003c/kbd\u003e.  Prefix it with \u003ckbd\u003eC-u\u003c/kbd\u003e to\n  switch to the other window.\n* For symbolic links, use modification time of taget for sorting.\n* When opening files, move point to the end of the first match of\n  the filter string.\n* Improved filter editing: delete (`DEL`), delete word (\u003ckbd\u003eM-DEL\u003c/kbd\u003e),\n  and yank (\u003ckbd\u003eC-y\u003c/kbd\u003e).\n* Advanced filter editing in minibuffer (\u003ckbd\u003eC-c C-l\u003c/kbd\u003e).\n\nVersion 0.4 (2011-12-11):\n\n* Improved filtering performance.\n* Optionally take title from filename instead of first line of the\n  contents (see `deft-use-filename-as-title`).\n* Dynamically resize width to fit the entire window.\n* Customizable time format (see `deft-time-format`).\n* Handle `deft-directory` properly with or without a trailing slash.\n\nVersion 0.3 (2011-09-11):\n\n* Internationalization: support filtering with multibyte characters.\n\nVersion 0.2 (2011-08-22):\n\n* Match filenames when filtering.\n* Automatically save opened files (optional).\n* Address some byte-compilation warnings.\n\nDeft was originally written by [Jason Blevins](https://jblevins.org/).\nThe initial version, 0.1, was released on August 6, 2011.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjrblevin%2Fdeft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjrblevin%2Fdeft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjrblevin%2Fdeft/lists"}