The VIM Editor

The VIM Editor

CSC408H1F/CSC2105H1F Software Engineering 2004-2005 Tutorial II. VIM editor 1. Historical retrospectives 2. Basics 3. Architecture and Code base 4. How does VIM talk to NetBeans? University of Toronto 1 CSC408H1F/CSC2105H1F Software Engineering 2004-2005 Historical perspectives • Vi(ew) is a popular programmer’s text editor in Unix, with many clones • http://www.vim.org: Vi Improved, an open- source project started by Bram Moolenaar. Now VIM is the de facto Vi ! • Current release: 6.3 • It has been ported to dozens platforms • You have it in CDF: /usr/bin/vim 6.3.13 • The source code is at ~yijun/src/vim63/src University of Toronto 2 CSC408H1F/CSC2105H1F Software Engineering 2004-2005 Basics • At command line, start by vim<ENTER> • Type :help<ENTER> to get an online hypertext help, which has all explanations • Type :help tutor<ENTER> to get a quick tutor session • Surf http://www.vim.org/6kbyte.php to find a brief introduction in your native language • Surf http://www.vim.org/tips/index.php to find more tips on the VIM usage University of Toronto 3 CSC408H1F/CSC2105H1F Software Engineering 2004-2005 Features • :help feature • Most notable features: – Syntax highlighting – Multiple buffers, views, and folding – Searching with regular expressions – Auto-indenting – Clipboard and registers – Macros and scripts • Try GVIM if you want to use more GUI features University of Toronto 4 CSC408H1F/CSC2105H1F Software Engineering 2004-2005 Architecture of VIM • See references at end of slides.... • We consider MVC architecture • VIM is not quite MVC... but close Controller View Model University of Toronto 5 CSC408H1F/CSC2105H1F Software Engineering 2004-2005 Understanding VIM code base • ls vim63/src/*.h vim63/src/*.c • What are the basic files? vim src/README.txt • What is the design? :help development • How does VIM talk to other tools? – Environment: scripting and shell – Files: fileio – Other IDE • Can you relate these files to the MVC components? University of Toronto 6 CSC408H1F/CSC2105H1F Software Engineering 2004-2005 How does VIM talk to NetBeans? • netbeans.c • The editor integration protocol (based on socket programming): org.netbeans.modules.emacs • How does this protocol work? • How to replace it with web services programming? University of Toronto 7 CSC408H1F/CSC2105H1F Software Engineering 2004-2005 VIM and NetBeans IDE External editor protocol o r g . n e n t e b t e b a e n a s n . s m . c o d u l e s . e m a c s University of Toronto 8 CSC408H1F/CSC2105H1F Software Engineering 2004-2005 A look at netbeans • We can get Beans IDE to use VIM – The external editor module should set it for you – ~yijun/software/NetBeans3.6/bin/runide.sh • Unfortunately, not easy to twist Beans IDE for webservice • VIM support for netbeans is incomplete University of Toronto 9 CSC408H1F/CSC2105H1F Software Engineering 2004-2005 A closer look at netbeans • The protocol is text-based! http://externaleditor.netbeans.org/ExtEdProtocol.html • And VIM documents what is/isn't done! http://www.vim.org/htmldoc/netbeans.html University of Toronto 10 CSC408H1F/CSC2105H1F Software Engineering 2004-2005 A hacky demo • We can write a simple server to listen... • We can make vim hook to any port... gvim -nb:<host>:<port> • Try to issue commands! 1:editFile!1 "simplesrv.c" 1:getText/2 1:getCursor/3 1:startDocumentListen!4 1:stopDocumentListen!5 University of Toronto 11 CSC408H1F/CSC2105H1F Software Engineering 2004-2005 So what? • Current netbeans.c isn't enough • But can be a great starting point • Any other examles? University of Toronto 12 CSC408H1F/CSC2105H1F Software Engineering 2004-2005 How does VIM talk to other environments • Sun Workshop: integration.c, workshop.c • TCL: if_tcl.c • TCL/TK + X Windows command server: if_xcmdsrv.c • Windows: os_win32.c, term.c • Visual Studio: VisVim plugin, Tip# 580 • Eclipse: viPlugin: http://satokar.com/viplugin/index.php • Can we have better solution? University of Toronto 13 CSC408H1F/CSC2105H1F Software Engineering 2004-2005 References • J. B. Tran, M. W. Godfrey, E. H. S. Lee, and R. C. Holt. “Architecture analysis and repair of open source software”. In Proc. of 2000 Intl. Workshop on Program Comprehension (IWPC'00), Limerick, Ireland, June 2000 • http://plg.uwaterloo.ca/~migod/papers/iwpc00.pdf University of Toronto 14 CSC408H1F/CSC2105H1F Software Engineering 2004-2005 References • "Secrets from the Monster: Extracting Mozilla's Software Architecture", by Michael W. Godfrey and Eric H. S. Lee, Proc. of the Second Intl. Symposium on Constructing Software Engineering Tools (CoSET-00) • http://plg.uwaterloo.ca/~migod/papers/coset00.pdf University of Toronto 15.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    15 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us