小编gre*_*uan的帖子

使用Zsh启动iTerm2

我一直在挖掘iTerm2的设置,但我似乎无法找到一种方法让它启动Zsh而不是Bash,有没有人知道在iTerm2中执行此操作的正确方法?

我问这个是因为我来自Mac终端,它很容易让你选择在启动时运行什么,但我似乎无法通过iTerm2直接找到一些东西.

我在谷歌搜索它,但由于某种原因我只能找到oh-my-zsh引用,与未修改的iTerm2无关.

感谢您提供的任何帮助,谢谢.:)

zsh iterm2

77
推荐指数
4
解决办法
6万
查看次数

VimL:检查函数是否存在

现在我正在清理我的.vimrc文件,以确保它在大多数系统上兼容.

在我的状态行中,我使用另一个插件设置的GitBranchInfoString()函数,该插件引入的函数.

我想做的是检查是否设置了此功能,然后将其添加到状态行.这将是它自己的行,所以我只需要检查它.

实现这一目标的最简单方法是什么?

感谢你的帮助!

编辑:

我有以下内容:

if exists('*GitBranchInfoString')
    let &stl.='%{GitBranchInfoString()}'
endif
Run Code Online (Sandbox Code Playgroud)

vim vim-plugin

20
推荐指数
3
解决办法
7737
查看次数

让Vim只做一个柔软的自动换行,而不是简单的自动换行

我已经使用Vim一个星期了.而且我注意到了一些事情.

我有未设置的textwidth,我有wrap set.现在,我的问题是.目前,每当我的行超过120个字符(窗口宽度)时,它会占用最后一个字符,就像那样,包装它.所以,如果它在一个单词的中间,它看起来像这样:

This is a very long sen|
tence, this looks very |
strange, don't you thin|
k?                     |
Run Code Online (Sandbox Code Playgroud)

顺便说一句,|代表文本限制,在这种情况下非常短,以证明我的观点.所以这说明我的问题是什么,我想要一个简单的解决方案,只要我不丢失任何屏幕空间.

当然,理想的解决方案将输出以下内容,而不修改文本,只输出文本,文本保持在一行,但它似乎分布在几个:

This is a very long    |
sentence, this looks   |
very strange, don't you|
think?                 |
Run Code Online (Sandbox Code Playgroud)

感谢您的任何帮助,您可以提供.:)

额外信息:

  • 操作系统:Mac OSX Mountain Lion
  • 使用MacVim

我尝试过以下方法:

set textwidth=120

set wrap
set linebreak

set fo=1
Run Code Online (Sandbox Code Playgroud)

vim macvim

18
推荐指数
1
解决办法
7635
查看次数

我应该在.vimrc文件中使用单引号或双引号吗?

Vim中single(')和double(")引号之间的区别是什么?是否会产生速度差异?在其中运行函数时,使用一个或另一个更好吗?它有关系吗?

我特别感兴趣的是他们在.vimrc文件中的使用.

我问,因为我发现人们同时使用两者,我想知道有什么区别.我尝试谷歌这个,但无法找到任何东西.

vim quotes double-quotes single-quotes

15
推荐指数
1
解决办法
2700
查看次数

禁用MacVim键盘快捷键

有没有办法在MacVim中禁用键盘快捷键?我的意思是快捷方式Cmd + s,例如,我想说服自己使用类似的东西:w,但如果我可以使用保存文件Cmd + s,我就不能这样做,你能得到我吗?

但我当然还想使用GUI,那么有没有办法禁用这些,而不停止使用MacVim GUI?

谢谢你的帮助.顺便说一句,我做了谷歌搜索,但无法找到答案.

编辑:
按照@ ChrisJohnsen的建议,我已经尝试了以下但没有成功:

if has('gui_running')
    macmenu File.Save key=<nop>
    macmenu File.Save\ As\.\.\. key=<nop>
endif
Run Code Online (Sandbox Code Playgroud)

编辑2:
我移动了错误我正在解决另一个问题:当我尝试在命令行运行vim时,我得到Python错误

vim keyboard-shortcuts macvim

9
推荐指数
1
解决办法
2115
查看次数

当我尝试在命令行中运行vim时,我遇到了Python错误

当我尝试在终端中运行vim时(以便在我的另一个问题中遵循@ romainl的建议)我得到了很多Python错误,这些都归结为:

IOError: invalid Python installation: unable to open /usr/include/python2.7/pyconfig.h (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

为什么是这样?我甚至可以使用Python或Sublime Text,没有任何问题.

完整的错误列表如下:

Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 565, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 547, in main
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 278, in addusersitepackages
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 253, in getusersitepackages
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 243, in getuserbase
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sysconfig.py", line 523, in get_config_var
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sysconfig.py", line 419, in get_config_vars
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sysconfig.py", line 298, in _init_posix
IOError: invalid Python installation: unable …
Run Code Online (Sandbox Code Playgroud)

python vim terminal

9
推荐指数
1
解决办法
2481
查看次数

Vim:状态线'%V'如何工作?

这是一个我无法找到答案的Vim问题.什么是%V状态行变量呢?

我检查了我可以找到的文档,但它不是很清楚,我知道它显示了虚拟列,但是这些数字/字母在-均值之前是什么?

例如,以下各项是什么意思?

0-1
17-18
Run Code Online (Sandbox Code Playgroud)

从我可以管理的内容中,找到这些例子.前面的数字-是最后一个实心列,换句话说就是真实列.它是否正确?

谢谢你的帮助!

vim statusline

8
推荐指数
1
解决办法
3100
查看次数

Node.js v0.10:替换文件中的某些字节而不读取整个文件

我正在制作一个文本编辑器,并且为了编辑文件,我真的需要某种方式来只读取文件中的某些字节,这是我使用fs.createReadStreamuisng startendoptions实现的.

我还需要替换文件中的某些字节.我不确定如何做到这一点.到目前为止,我提出的最佳解决方案是使用流读取文件,然后写入新文件,当我遇到我正在寻找的字节时,我会编写新内容,从而替换旧的内容新的东西.

这可能不是最好的方法,你可能知道.要编辑4个字节,我正在读取一个巨大的2GB文件并编写2GB(假设我正在编辑2GB文件),至少效率不高.

实现这一目标的最佳方法是什么?我花了两周的时间做这个,我也想过使用Buffers,但是Buffers将整个文件加载到内存中,如果它是2GB的文件,这又是无效的.

如何在不读取整个文件的情况下更换文件中的某些字节,并且不安装一些具有C++代码的npm软件包.我不希望我的编辑器必须编译C++代码.

如果这样做并不简单,那么如何在不读取整个文件的情况下从文件中删除某些字节呢?如果我可以这样做,那么我可以删除要替换的字节,并使用类似的东西fs.write()来添加我想要替换的字节.

编辑#1:

玩弄后,我发现,如果我打开一个文件fs.open,旗r+,然后fs.write替代的东西.所以,如果文字是"Lorem ipsum",我fs.write"!!!!" 结果将是"!!!! m ipsum".

如果我要编写的所有内容都是完美的长度,这样就可以正常工作.:/

我知道在新内容不是完美的长度的情况下该怎么办,但我不知道如何.:/也许如果有某种"空字节"......

编辑#2:

如上所述,fs.open(使用r+flags选项)+ fs.write允许我覆盖文件中的内容而不读取整个文件,这非常棒.现在,我遇到了一个新问题.我们来看以下文件:

one\n
two\n
three\n
Run Code Online (Sandbox Code Playgroud)

如果我fs.open在字节0然后fs.write"是",我最终得到:

yes\n
two\n
three\n
Run Code Online (Sandbox Code Playgroud)

如果我这样做,而是fs.write"niet",我最终得到:

niettwo\n
three\n
Run Code Online (Sandbox Code Playgroud)

注意如何\n字是用"T"所取代,这是因为如何fs.write使用时更换字节工程r+fs.open.这是我现在想解决的问题.

一个会如何做这样的事情"从这个字节到该字节,这些其他字节替换"所以我的函数可以是这样function replaceBytes(filePath, newBytes, startByte, endByte)和那样只会从更换startByteendByte,无论多久newBytes,不管是不是更短或更长的长度endByte - …

file-io node.js

8
推荐指数
1
解决办法
1387
查看次数

Vim:如何检测用户所处的模式,状态行?

我需要一种简单(或复杂)的方法来确定用户所处的模式.我需要知道用户是否处于Normal,Insert,Visual,Replace,Change等.

我知道这个mode()功能,但我无法弄清楚如何输出一个完整的字符串而不是一个字符.

我的计划是创建一个函数,根据mode()返回的字符串动态更改状态行的背景和前景颜色.基本上是一个函数与一堆ifs和elseifs,它会为我做.但是这种方法存在一个缺陷,我无法知道默认情况下主题设置的颜色.

所以基本上,我需要一些关于如何创建执行以下功能的提示/帮助:

  • 知道用户所处的模式.其余的功能每次发生变化时都会有不同的反应.
  • 使用fgbg值设置一些变量,这些变量反映当前主题为它们设置的内容.
  • 根据这些值更改状态行的前景和背景.

我尝试过这样做,但这是一种非常粗暴的做法,它根本不起作用.它只设置一次颜色,之后每次更改都没有反应.

谢谢你的帮助!:)

编辑:

非常确定我之前尝试的不起作用是这样的:

function! StatuslineModeColor()
    let s:StatuslineMode=mode()
    if s:StatuslineMode == 'n'
        hi Statusline ctermbg=blue guibg=blue
    elseif s:StatuslineMode == 'i'
        hi Statusline ctermbg=red guibg=red
    endif
endfunc
Run Code Online (Sandbox Code Playgroud)

在状态栏中,我提出以下内容:

let &stl.='%{StatuslineModeColor()}'
Run Code Online (Sandbox Code Playgroud)

编辑2:

我已经弄清楚,基本上我需要做的是找到一种方法来抓住主题之前使用的任何颜色.如果我使用这个解决方案,那就是:http://www.reddit.com/r/vim/comments/gexi6/a_smarter_statusline_code_in_comments/c1n2oo5

然而,这个解决方案在我的标准中并不理想,因为它不干净,或者尽可能干净,因为它会造成很多混乱.:/

vim statusline

7
推荐指数
1
解决办法
3570
查看次数

如何找出当前colorscheme用于某些东西的某个颜色值?

我需要这个才能完成我正在制作的插件,以便根据模式更改状态行的颜色.

但是我遇到了一个明显的问题,我怎么知道用户使用的是什么主题?即使我知道我不能为每个主题制作特定的颜色.

因此,如何知道当前主题用于状态行的前景色和背景色.

编辑1:

如果我不清楚,我正在寻找一种方法来找出ctermfg/ bgguifg/ bg某些东西.现在是状态线.:)

编辑2:

显然,如果我这样做,:hi StatusLine我得到了我需要的东西,但是我需要改进它以获得唯一的价值,而不是全部.我猜我必须使用一些正则表达式来找出价值.如果有人知道更简单的方法,请分享它(或者如果你已经用正则表达式弄明白的话).谢谢!

vim vim-plugin statusline

7
推荐指数
1
解决办法
1132
查看次数