`
dcj3sjt126com
  • 浏览: 1872889 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

给xcode插上vim的翅膀

    博客分类:
  • IOS
阅读更多

From : http://blog.cnrainbird.com/index.php/2012/12/11/gei_xcode_cha_shang_vim_de_chi_bang/

 

用eclipse的同学开始使用xcode的时候总会问:上下两行交换位置用什么快捷键,选中{怎么自动跳到}。好吧,上下两行交换交换位置在4.x的xcode里确实是有快捷键的:option+command+[向上移;option+command+]向下移。但是这个{}之间的来回跳转我确实没研究出来。于是想着vim里有这样的快捷键,于是google:xcode+vim竟然有个叫作xvim的神器,于是赶紧装了。下面是在这个环境下编程了三四天的感受:

1.作为vim党,用这个插件确实很享受,尤其是习惯了h,j,k,l这些键上下移动

2.{}来回跳转解决了,在大量if,else的时候很有用哟。

3.可以直接直接跳转到哪些行,yy,dd自然不在话下。另外上下两行交换位置也不用按那么多键了,直接ddp搞定。

4.习惯了在vim里输入完东西,然后就:w保存。要知道xcode每次编译运行都会自动保存代码的。so,正在逐渐的适应:run,相当于command+b哟。

唯一不爽的:

选择多行,command+x剪切的时候会崩溃,这问题出现过两次了,还没空看代码解决Bug,不过遇到这种情况用vim的快捷键就好了。

另外就是目前还不支持:20,30d这种指令,准备有空了仔细看下代码给加上。

 

最后说下安装方法:

1.下载安装包

2.双击安装

3.重启xcode

 

然后就是have fun了~

 

Feature List

We try to keep this up to date, but sometimes implementation can get ahead of documentation. If a command is missing, just try it in XVim first - it might already be there!

If you've tried a command and it really is missing, feel free to create an issue and a friendly contributor will pick it up eventually.

Motion

b, B, f, F, gg, G, h, j, k, l, w, W, t, T, 0, $, ^, %, +, -, {, }, (, ), n, N, ', `, M, H, L

Comma and semicolon are supported. Toggle inclusive/exclusive by v is supported.

Mark

File-local marks are supported. Global marks are not yet supported.

The '.' mark (last insertion point) is supported. gi (insert mode at last insertion point) is supported.

Scroll

C-d, C-f, C-e, C-u, C-b, C-y, zz, zb, zt

Jumps

C-o, C-i, gd

If you want to open the file under the cursor you can use 'gd' instead of 'gf' in XVim environment.

Insert

a, A, i, I, o, O

Yank, put and change

d, dd, D, y, yy, Y, c, cc, C, r, s, x, X

Line join

J

Shift block

Normal mode: >, >>, <, <<

Visual mode: >, <

Case change operations

Normal mode: ~, gu, gU, g~

Visual mode: u, U, ~, gu, gU

Undo

u, C-r

Visual

v, V

Ctrl-v is not supported now. (v, V in visual mode to toggle or escape from visual mode is supported)

Visual block mode is currently not supported.

Window manipulation

Input Operation
C-w n Add new assistant editor
C-w q Delete one assistant editor
C-w s Add new assistant editor horizontally
C-w v Add new assistant editor vertically
C-w h,j,k,l Move focus between editors

Search and Replace

/, ?, #, *, g*, g#, :s, n, N

Regex search is supported using the ICU regex format.

Substitution does not work as Vim does. When you input command following

:%s/xxxx/yyyy/

XVim does replace the first occurence of xxxx IN THE FILE (not each line ). If you want to replace all the occurence of xxxx with yyyy in the file you can specify

:%s/xxxx/yyyy/g

Currently replacing first occurence of xxxx with yyyy each line is not available

Insert mode commands

C-y, C-e

Print status commands

C-g

Text Object

ib, iB, i(, i), i{, i}, i[, i], i>, i<, i", i', iw, iW ab, aB, a(, a), a{, a}, a[, a], a>, a<, a", a', aw, aW

Recording

q, @

Dot command

The dot command ('.') is supported.

Ex commands

Command Note
:w[rite]  
:wq  
:q[uit]  
:s[ubstitute]  
:set See Options for supported variables
:map Maps globally across XVim, in all modes
:nmap Maps normal mode
:vmap Maps visual mode
:imap Maps insert mode
:omap Maps operator pending mode

XVim original commands

Command Note
:run Invoke Xcode's 'run' command
:make Invoke Xcode's 'build' command
:xhelp Show quick help for current insertion point
:xccmd Invoke arbitrary command in Xcode's actions in its menu. Takes one argument as its action to invoke. Actions here are available.
:nissue Invoke "jump to next issue". ":ni" does the samse.
:pissue Invoke "jump to previous issue". ":pi" does the same.
:ncounterpart Invoke "jump to next counterpart". ":nc" does the same.
:pcounterpart Invoke "jump to previous counterpart". ":pc" does the same.

Options

Command Note
[no]ignorecase  
[no]wrap  
[no]wrapscan  
[no]errorbells  
[no]incsearch  
[no]gdefault  
[no]smartcase  
guioptions See below
timeoutlen The time in milliseconds that is waited for mapped key sequence to complete (default 1000)
laststatus 0 or 1 : status line is hidden, 2 : status line is displayed (default 2)
[no]pasteboard Whether yank/delete/pull uses the standard clipboard

pasteboard

guioptions

A limited subset of Vim options is implemented.

Option Effect
r Show vertical scrollbar
b Show horizontal scrollbar

These changes only take effect on startup, meaning this option is only effective if used from within your .xvimrc.

Key mapping

XVim supports five map commands: map, nmap, vmap, imap, omap. A map command can change one or more keystrokes into one or more key strokes.

Note: The default timeout value for multi-key mapping completion is 1 seconds (1000 milliseconds). You can change it using 'timeoutlen' option.

Examples:

nmap n e
imap ' <Esc>
nmap u 5jiInsert some text<Esc>
nmap ,w :w<cr>

.xvimrc

At startup XVim looks for ~/.xvimrc. Each line in this file is executed as an ex command. This allows you to configure mappings and options.

Example:

set ignorecase
set wrapscan
set guioptions=r
nmap n e

Known problems

See XVim issue page.

分享到:
评论

相关推荐

    xcode下面的vim

    xcode下面可以用vim的插件,喜欢vim的同学千万不可错过

    xcode的vim插件

    "Xcode的vim插件"是将Vim的功能集成到Xcode中,让习惯于Vim操作的开发者在Xcode环境下也能享受到Vim的便捷。 XVim是这款插件的具体实现,它允许Xcode用户在编辑代码时使用大部分Vim命令。这极大地提升了熟悉Vim的...

    Xcode的vim插件XVim.zip

    XVim 是一个 Xcode 的插件,实现了 vim 的编辑习惯。支持:Xcode4.6Xcode5Xcode6 betaXcode7 标签:XVim

    xcode 的vim按键插件

    支持xcode 4.3 4.4 亲测可用 只需要解压,用xcode打开Xvim.xcodeproj编译运行下,然后退出xcode,再重启就OK了 如果需要清除插件,则 Uninstall ============= Delete the following directory: $HOME/Library/...

    XVim2:Xcode 9的Vim键绑定

    XVim2是Xcode的Vim插件,旨在提供引人入胜的Vim体验,而无需放弃任何Xcode功能。 Xcode 9或更高版本,请按照以下安装说明进行操作。 Xcode 8或以下,您应该使用 已创建。 安装 用您自己的证书签署Xcode。 您可以...

    Xcode 9的Vim键绑定-Swift开发

    XVim2 XVim2是Xcode的Vim插件。 该插件旨在提供引人入胜的Vim体验,而无需放弃任何Xcode功能。 Xcode 9或更高版本,请按照以下安装说明进行操作。 Xcode 8或更低版本,XVim2 XVim2是Xcode的Vim插件。 该插件旨在提供...

    Spacegray.vim, 在 Spacegray Xcode主题上,基于loosely的Vim颜色方案.zip

    Spacegray.vim, 在 Spacegray Xcode主题上,基于loosely的Vim颜色方案 Spacegray.vimSpacegray是一个用于Vim的colorscheme,它以为例,以Xcode主题为例。命令行选项你可以通过启用以下禁用选项来调整 Spacegray:...

    swift-XVim2一个将Vim体验引入Xcode的插件

    XVim2是一款为Xcode设计的开源插件,它的目标是将经典的Vim编辑模式引入到Xcode中,让熟悉Vim操作的开发者能够在Xcode里享受到与Vim相似的编码体验。通过XVim2,开发者可以使用Vim的导航、编辑和搜索替换等命令,...

    Spacegray.vim:松散地模仿 Spacegray Xcode 主题的 Vim 配色方案

    太空灰.vim Spacegray 是 Vim 的方案,松散地模仿了 Xcode 的主题。截图以下是 Spacegray 的一些屏幕截图:(使用的字体:Fira Mono 12pt)JavaScript (GUI Vim)Vim (GUI Vim)Ruby(终端 Vim)安装如果你没有首选的...

    vim-colors-xcode:Xcode 11的深色和浅色设计方案,现在用于Vim!

    vim-colors-xcode现在,Vim有许多Xcode 11的颜色方案!在取得 ,该工具包的Vim Colourscheme设计师屏幕截图 提供高对比度的变体xcodedark xcodedarkhc (高对比度) xcodelight xcodelighthc (高对比度)安装使用您...

    xcode自动给方法添加注释

    标题提到的"Xcode自动给方法添加注释",实际上是在讨论Xcode的一个插件——VVDocumenter,这个插件可以方便地帮助开发者快速、一致地为代码添加文档注释。 VVDocumenter-Xcode是由开发者Vim Victor开发的一款强大的...

    Xcode 15.4 真机调试

    8. **错误与崩溃日志**:真机调试时,Xcode会记录设备上的错误和崩溃信息,方便定位问题原因。这些日志可以通过Xcode的Console工具查看,也可以导出用于离线分析。 9. **权限管理**:在真机上,开发者可以测试应用...

    xcode 15.4 真机调试包

    Xcode 15.4 真机调试包是一个针对苹果开发者的重要工具,它允许开发者在实际设备上测试和调试iOS、iPadOS、macOS、tvOS以及watchOS应用程序。这个版本的Xcode包含了编译器、模拟器、界面设计工具、性能分析工具等一...

    Xcode 12.1镜像文件

    本篇文章将深入探讨Xcode 12.1镜像文件的应用,以及如何在Xcode中配置,以便在真机上运行并测试针对iOS 12.1的应用程序。 首先,我们需要理解为什么有些开发者会需要保留对旧版iOS的支持。尽管新版本的iOS通常提供...

    xcode4.2.1 xcode4.1 xcode3.2.6final

    ### Xcode 版本概述与比较 Xcode 是苹果公司为开发者提供的官方集成开发环境(IDE),主要用于开发 iOS、macOS、watchOS 和 tvOS 的应用程序。随着时间的推移,Xcode 经历了多个版本的迭代和发展。本文将重点介绍 ...

    Xcode自动添加注释

    在iOS开发领域,Xcode是Apple官方推荐的集成开发环境(IDE),它为开发者提供了丰富的功能,其中之一就是自动添加注释。"Xcode自动添加注释"这一特性大大提升了编码效率,使得源代码的可读性和维护性得到显著提高。...

    xcode disk image 10.1

    标题中的“xcode disk image 10.1”指的是Xcode的一个特定版本,与iOS 10.1设备支持相关的磁盘映像。这个版本的Xcode包含了开发和测试iOS 10.1应用程序所需的所有工具和资源。Xcode是Apple官方的集成开发环境(IDE)...

    xcode 自动对齐插件

    在iOS和macOS应用开发领域,Xcode是Apple官方推荐的集成开发环境(IDE),它提供了丰富的功能,如代码编辑、调试、构建管理等。然而,对于习惯于使用Visual Studio等其他IDE的开发者来说,Xcode在某些方面可能略显...

    VVDocumenter-Xcode xcode6 亲测

    《VVDocumenter-Xcode:Xcode6时代的注释利器》 在iOS和macOS的开发过程中,代码注释是至关重要的,它不仅有助于提高代码的可读性,还能方便团队协作,让其他开发者更容易理解你的代码逻辑。VVDocumenter-Xcode是一...

Global site tag (gtag.js) - Google Analytics