Giter Site home page Giter Site logo

jceb / vim-orgmode Goto Github PK

View Code? Open in Web Editor NEW
3.1K 3.1K 266.0 2.23 MB

Text outlining and task management for Vim based on Emacs' Org-Mode

Home Page: http://www.vim.org/scripts/script.php?script_id=3642

License: Other

Makefile 2.03% Python 91.12% Batchfile 1.45% Vim Script 5.41%

vim-orgmode's Introduction

Vim-OrgMode

https://badges.gitter.im/jceb/vim-orgmode.svg https://travis-ci.org/jceb/vim-orgmode.svg https://codecov.io/gh/jceb/vim-orgmode/branch/master/graph/badge.svg

Text outlining and task management for Vim based on Emacs’ Org-Mode.

The idea for this plugin was born by listening to the Floss Weekly podcast introducing Emacs Org-Mode. Org-Mode has a lot of strong features like folding, views (sparse tree) and scheduling of tasks. These are completed by hyperlinks, tags, todo states, priorities aso.

vim-orgmode aims at providing the same functionality for Vim.

examples/mylife.gif

Features

Currently vim-orgmode does not support all orgmode features but is quite usable. Short list of the already supported features:

  • Syntax highlighting
  • Cycle visibility of headings (folding)
  • Navigate between headings
  • Edit the structure of the document: add, move, promote, denote headings and more
  • Hyperlinks within vim-orgmode and outside (files, webpages, etc.)
  • TODO list management
  • Tags for headings
  • Lists in alphanumeric and bullet item notation and checkbox support
  • Basic date handling
  • Export to other formats (via Emacs’ Org-Mode)

Installation and Usage

Installation and usage instructions are found in the file doc/orgguide.txt.

License

Information about the license is found in file LICENSE.

Changelog

All changes are found in file CHANGELOG.org

vim-orgmode's People

Contributors

adam-m-jcbs avatar adimit avatar akstrfn avatar bpo avatar brandonson avatar bstinsonmhk avatar detegr avatar draiken avatar fabi1cazenave avatar fanglingsu avatar get-me-power avatar jbpoittevin avatar jceb avatar jdpopkin avatar jean avatar jerojasro avatar kyleconroy avatar kyoshiro avatar lanker avatar powentan avatar psirus avatar raitaroh avatar ron89 avatar schoettl avatar shurakai avatar sotte avatar tbm avatar tetov avatar x4121 avatar xvilka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vim-orgmode's Issues

tab key brings org mode to a halt

thanks for your work on org-mode, whenever I use tab key or shift tab, GVIM or VIM completely locks up. FYI, I'm using the SuperTab plugin (not sure if that would make a difference)

Moving to the partent's next sibling

It often happens to me that I'm in the middle of a heading and want to jump to the next section. This is possible by pressing g{]] but I find this rather cumbersome.

g} should be implemented to allow a fast movement to the parent's next sibling.

Fast searching of tags

There should be a mapping to search for tags very fast. I imaging a prompt where I can type a part of a tag and complete it by pressing . A search filter should be generated that looks something like this: /:\zsTAG\ze:

What should be a plugin and what should be in the core

I'm not quite sure when i should put something into the core or the plugins. The TODO functionality for example is an essential feature and could get simplified quite a bit if it get's integrated in the lib. I'm not suggesting to do so. I'm simply asking for a guideline.

ALso when should the plugin write in the vim buffer and when should the document object be altered?

Cheers,
Stefan

Error msgs and mappings clash with delimitMate.vim

Error msgs when opening .org files on Windows (gVim 7.3, python 3).

"\bundles\vim-orgmode\README.org"
"\bundles\vim-orgmode\README.org" 439L, 21073C
Error detected while processing \vimfiles\ftplugin\org.vim:
line   83:
E121: Undefined variable: u
E15: Invalid expression: [u'TODO', u'|', u'DONE']
Traceback (most recent call last):
  File "<string>", line 11, in <module>
  File "\vimfiles\ftplugin\orgmode\__init__.py", line 299, in start
    self.register_plugin(p)
  File "\vimfiles\ftplugin\orgmode\keybinding.py", line 16, in r
    p = f(*args, **kwargs)
  File "\vimfiles\ftplugin\orgmode\keybinding.py", line 16, in r
    p = f(*args, **kwargs)
  File "\vimfiles\ftplugin\orgmode\menu.py", line 9, in r
    p = f(*args, **kwargs)
  File "\vimfiles\ftplugin\orgmode\__init__.py", line 257, in register_plugin
    self._plugins[plugin].register()
  File "\vimfiles\ftplugin\orgmode\plugins\Todo.py", line 149, in register
    settings.set(u'org_todo_keywords', [u'TODO', u'|', u'DONE'])
  File "\vimfiles\ftplugin\orgmode\settings.py", line 67, in set
    vim.command((u'let %s:%s = %s' % (VARIABLE_LEADER[scope], setting, v)).encode(u'utf-8'))
vim.error
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line    4:
E225: global mapping already exists for �kb
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   24:
E225: global mapping already exists for �kB
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   29:
E225: global mapping already exists for �kD
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   35:
E225: global mapping already exists for �kl
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   35:
E225: global mapping already exists for �kr
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   42:
E225: global mapping already exists for �ku
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   42:
E225: global mapping already exists for �kd
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line    4:
E225: global mapping already exists for �kb
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   24:
E225: global mapping already exists for �kB
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   29:
E225: global mapping already exists for �kD
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   35:
E225: global mapping already exists for �kl
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   35:
E225: global mapping already exists for �kr
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   42:
E225: global mapping already exists for �ku
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   42:
E225: global mapping already exists for �kd
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line    4:
E225: global mapping already exists for �kb
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   24:
E225: global mapping already exists for �kB
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   29:
E225: global mapping already exists for �kD
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   35:
E225: global mapping already exists for �kl
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   35:
E225: global mapping already exists for �kr
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   42:
E225: global mapping already exists for �ku
Error detected while processing function <SNR>17_DelimitMateDo..<SNR>17_Map..<SNR>17_ExtraMappings:
line   42:
E225: global mapping already exists for �kd

Demoting heading causes endless loop

If you try to demote the last heading in the following sample file with << Vim runs into an endless loop.

$ cat test.org
* Foobar
** Barfoo
** Foo
$
$ vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Apr 16 2010 12:40:58)

As it is shipped with Ubuntu 10.04.

make check error

I have always errors on calling make, because the testcases fails.

# make check
cd test && python run_tests.py
Traceback (most recent call last):
  File "run_tests.py", line 4, in 
    import test_vimbuffer
  File "/home/daniel/code/vim/vim-orgmode/test/test_vimbuffer.py", line 10, in 
    from orgmode.document import VimBuffer
  File "../ftplugin/orgmode/__init__.py", line 13, in 
    from orgmode.document   import VimBuffer
  File "../ftplugin/orgmode/document.py", line 4, in 
    from liborgmode import Document, Heading, MultiPurposeList
ImportError: cannot import name MultiPurposeList
make: *** [check] Fehler 1

I can't build any vba file with this error. I don't know if this is related to issu 16.

Daniel

Improve detection of mapping

Figure out a way to get the keys the user pressed to activate a mapping so that feedkeys can be used properly.

Related: v:operator and maparg() and mapcheck()

Improve context based actions

Org-Mode uses the default mapping to perform different actions depending on the context:

  • create new heading
  • create new list item
    ...

Errors in Updates

Shift Enter Broken in Recent Updates, doesn't work at all in Normal mode, and when using Insert mode I get the following error:

Error detected while processing InsertLeave Auto commands for "<buffer=1>":
Traceback (most recent call last):
Press ENTER or type command to continue
Error detected while processing InsertLeave Auto commands for "<buffer=1>":
  File "<string>", line 1, in <module>
Press ENTER or type command to continue
Error detected while processing InsertLeave Auto commands for "<buffer=1>":
  File "/home/wavded/.vim/bundle/vim-orgmode/ftplugin/orgmode/plugins/TagsProperties.py", line 100, in realign_tags
Press ENTER or type command to continue
Error detected while processing InsertLeave Auto commands for "<buffer=1>":
    heading = Document.current_heading()    

Repeat last movement

It should be possible to easily repeat the last movement. Especially for movements invoked by pressing two keys this would be very beneficial.

chapa implements this by mapping and to repeat movement in the same or in the opposite direction.

Improve split of heading

When the cursor is behind the last character of a heading in insert mode the last character is currently split off. Unfortunately it's not possible to tell the exact position of the cursor. As a workaround the last character should only be split off when the second last character is a space or tab character.

Fake todo states confuse Todo plugin

When the first word in a heading is equal to it's upper case representation (word == word.upper()), the Todo plugin assumes it's a todo state. When changing the todo states, the word get's deleted.

Inserting a new heading is very slow

Inserting a new heading below the current one is very slow when the current heading has children. First the children are deleted and then inserted again.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.