Skip to content

wang123am/XVim

 
 

Repository files navigation

[日本語版]

XVim Build Status

XVim is a Vim plugin for Xcode. The plugin intends to offer a compelling Vim experience without the need to give up any Xcode features.

Announcement

  • XVim repository has moved to XVimProject organization. There are not so many thing you have to do with this but if you cloned the repo and working local it is recommendded to change the remote URL as sited here (This is not must. Github nicely forward old URL to new one.)
  • XVim started to use BountySource Bountysource Bountysource
  • Google Group for XVim developers has been created.

Support Xcode Versions

  • Xcode5
  • Xcode6 GM
  • Xcode7 GM

INSTALL

Download source code or clone the repo. Then,

$ make

Create .xvimrc as you need and restart your Xcode.

Manual build and install

  • Download source code(See also "Branches and Releases" section) and open XVim.xcodeproj with Xcode.
  • Select an appropriate Scheme for your Xcode version
    • "XVim for Xcode5 and 6" must be built with Xcode5 or 6
  • Select "Edit Scheme" and set "Build Configuration" as "Release"
  • Build it. It automatically installs the plugin into the correct directory.
  • Restart Xcode. (Make sure that the Xcode process is terminated entirely)
  • Create a .xvimrc file in the root of your home directory (optional)

Branches and Releases

XVim has several branches and releases. Usually you only need to download one of 'releases' and use it. Here is an explanation about each release and branch.

  • Releases(tags) : Releases are tags on master branch. All the code and documents on these tags are well arranged. Usual XVim user should use one of releases.
  • master : Most stable branch. Critical bug fixes and stable feature developed in 'develop' branch are merged into 'master'. If you find a critical bug in a release, try latest 'master' branch.
  • develop : New features and non critical bug fixes are merged into this branch. If you want experimental features use this branch.

Any other branches are temporary branches to develop features or bug fixes which will be merged into 'develop' branch after all. Any pull requests should be made to 'develop' branch.

Uninstall

$ make uninstall

Manual uninstall

Delete the following directory: $HOME/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/XVim.xcplugin

Feature list

See separate FeatureList.md

Update pluginuuid

Xcode cann't load a Xcode plugin doesn't have pluginuuid of it. XVim might not work for the lastest version Xcode. You can easily add PluginUUID of Xcode you use to Info.plist.

$ rake updatepluginuuid

If the error relating 'plist' show,

$ bundle install

or

$ gem install plist

After that, reinstall XVim.

Bug reports

Unfortunately XVim sometimes crashes Xcode. We are working on eliminating all the bugs, but it's really hard work. It helps greatly when we have your bug reports, with the following information:

  • Crash information ( Xcode shows threads stack trace when crashes. Copy them. )
  • The operations you did to cause the crash ( series of key strokes or mouse clicks )
  • The text you were manipulating
  • Xcode version
  • XVim version ( Version number of the revision you built )

When it is hard to solve a problem with information above, take debug log according to the following movie please.

How to get XVim debug log

We appreciate if you write test case for the bug. Read "Write test" section in Documents/Developsers/PullRequest.md how to write test case. You do not need to update any source code but just write 7 items explained there in an issue you create.

Bountysource

XVim supports Bountysource. If you want to solve your issue sooner make bounty on your issue is one option. A contributer should work on it preferentially (not guaranteed though). To make bounty visit following link and go to "Issue" tab. Select your issue and make bounty on it.

https://www.bountysource.com/teams/xvim

Bug issue handling

Reported bugs are handled following order.

  1. Confirm if the bug reproduce and the issue labeled as 'Bug'
  2. Fix the bug in 'develop' branch
  3. Confirm the fix by the reporter
  4. The issue is labeled 'Done'
  5. Confirm that the fix does not make another side effect.
  6. Merged into 'master'
  7. The issue is closed.

This order is only applied to 'Bug' issues.

Contributions

Any suggestions, bug reports or feature requests are welcome.

If you want to add a feature or fix bugs by yourself the following videos are good help for you.

Any pull requests are very much appreciated. Before you make a pull request see Make a Pull Request

Watch the videos mentioned earlier for a full tutorial on developing, debugging and testing XVim. Here is a very simple guide to get you started.

Debugging

  1. Make sure you have Xcode.app installed at /Applications/Xcode.app, if that's true just open XVim.xcodeproj and Run (CMD + R). You can ignore the rest steps.
  2. If you have Xcode installed at a different path, follow these steps.
  3. Open XVim.xcodeproj
  4. Got to Edit Scheme... => Run => Executable => Other => Choose The Xcode.app you installed to.
  5. Run (CMD + R)

Run Unit Tests

  1. In your .xvimrc, add a line "set debug", which tells XVim to run in debug mode.
  2. Open XVim.xcodeproj, a debug instance of Xcode shows up.
  3. In the debug Xcode instance, create a random small disposable project (say HelloWorld.xcodeproj) if you have don't this already.
  4. Open HelloWorld.xcodeproj using debug Xcode instance.
  5. Go to XVim menu, there should be an item "test categories"
  6. Choose a category to run
  7. A separate window shows up and unit tests are run inside that window.
  8. Results will be shown when all the tests in that category are completed.

Donations

If you think the plugin is useful, please donate. There are two options you can take. Donate for Japan Earthquake and Tsunami Relief or back the project via BountySource. There is no rule that you cannot take both :) .

Japan Earthquake and Tsunami Relief

Since I do not intend make money from this project, I am directing donations to the people suffering from the damage of the 2011 Tohoku earthquake and tsunami in Japan.

Please donate directly through the Paypal donation site below, as this will put more money to good use by reducing the transfer fee.

https://www.paypal-donations.com/pp-charity/web.us/campaign.jsp?cid=-12

Since no messages are sent when you donate from the paypal link, you could also write a donation message on Message Board. I(we) would really appreciate it, and it will really motivate me(us)!

BountySource

If you like to help and enhance the project directly consider backing this project via BountySource. You can back the team (which means you support the entire project) or you can make bounty on a specific issue. (If you have any bugs to be fixed or features to be implemented not in issues yet you can make one.)

Contributors

See contributors page in github repository. https://github.com/XVimProject/XVim/contributors

License

MIT License

About

Xcode plugin for Vim keybindings

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 83.0%
  • HTML 9.0%
  • C++ 8.0%