我想为vim实现一个隐藏文件中某些字符的语法文件.具体来说,我想编写一个改进的荧光笔来读取没有显示某些格式化字符的Markdown文件,而是倾向于隐式地指示它们.例如,我想像*bold*渲染一样简单地bold使用粗体文本,或者像标题一样
My Header
=========
Run Code Online (Sandbox Code Playgroud)
不显示下划线,但只是出现不同的颜色.到目前为止,我还没有设法找到任何隐藏显示特定字符的vim语法文件的例子.这是vim可能的吗?如果是这样,怎么样?
我知道可以使用该选项在PHP脚本中启用SQL语法突出显示
let php_sql_query=1
Run Code Online (Sandbox Code Playgroud)
但这只能突出显示每个字符串中的所有SQL关键字.即使是在一个正常的句子像这一个.
有没有办法只为以"选择","更新"或"删除"开头的字符串启用此功能?
我想在VIM中设置自动完成(intellisense).为此,我使用NeoComplCache插件,它可以工作,但它不会显示所有显示的条目C-xC-o.例如,NeoComplCache不显示任何新创建的函数,变量或类,而omnicomplete显示它们就好了.
我在_vimrc中有这个:
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
let g:neocomplcache_enable_at_startup = 1
let g:neocomplcache_enable_auto_select = 1
let g:neocomplcache_min_syntax_length = 1
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉NeoComplCache显示这些条目,以便Vim的默认C-xC-o项目显示?
谢谢
例如,如果我有$asd['word_123'],我想用它替换它$this->line('word_123'),保留'word_123'.我怎么能这样做?
通过使用这个:
%s/asd\[\'.*\'\]/this->line('.*')/g
Run Code Online (Sandbox Code Playgroud)
我无法保持两者之间的措辞.请赐教.
如何突出以sql_引号开头并在引号内的字符串?
我的日志文件:
MGPostgreSQLConnection.OpenQuery; "sql_p_factory_history"-ExecTime: 47ms
2010-11-12T17:28:18+01:00;custom; MGPostgreSQLConnection.OpenQuery; "sql_p_factory_history"-ExecTime+FetchTime: 47ms
2010-11-12T17:28:18+01:00;custom; MGPostgreSQLConnection.OpenQuery; "sql_factory"-ExecTime: 47ms
2010-11-12T17:28:18+01:00;custom; MGPostgreSQLConnection.OpenQuery; "sql_factory_contactperson"-ExecTime+FetchTime: 62ms
Run Code Online (Sandbox Code Playgroud)
我的vimrc(当然这不起作用):
au BufRead,BufNewFile *.log syn match "sql_*"
au BufRead,BufNewFile *.log hi sql guifg=white guibg=red
Run Code Online (Sandbox Code Playgroud) 我正在使用msysgit附带的bash和vim.我已将.vimrc文件添加到我的主文件夹中,并且大多数命令都在执行.但syntax on事实并非如此.
这是我的~/.vimrc文件的内容:
set cul
hi CursorLine cterm=none ctermbg=darkgray ctermfg=white
syntax on
Run Code Online (Sandbox Code Playgroud)
当前的行和突出显示现在正在运行,但是syntax on失败了.Msysgit安装它自己的vim,在C:\Program Files (x86)\Git\share\vim\vim73\syntax文件夹中,它不包含bash.vim或sh.vim文件.其他文件在那里,如conf.vim,gitcommit.vim和gitrebase.vim - 甚至是c.vim.
我猜这就是没有突出显示的原因.鉴于我无法触摸该文件夹(不要问),如何更改我的.vimrc文件以加载bash.vim文件 - 什么是获取一个文件的好地方?
任何帮助表示赞赏.
python调用在我的一些.vim文件中定义.
:breakadd file linenumber xx.vim 似乎不起作用.
当我按下一个触发某些python函数调用的键时,它不会停在该行.发生了什么?顺便说一句,因为我使用打开文件,所以我处于vim的调试模式vim -D filename.
如下图所示,我想要做的是调试一个python函数,当我按下F5vim 时调用它.

我在VMWare托管的Ubuntu实例中显示正确的字体或字形时遇到问题.
webkell@ubuntu:~$ uname -a
Linux ubuntu 2.6.35-22-generic #35-Ubuntu SMP Sat Oct 16 20:36:48 UTC 2010 i686 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
我已经使用Vundle安装了vim-powerline,并且ii)应用了该指南的"linux"部分中描述的fontpatcher ,但是我仍然看到这个截图中看到的奇怪字符:
.
我在用户提供的Powerline字体中尝试过字体Lucida Sans Typewriter-Powerline.otf和Monaco_Linux-Powerline.ttf .我甚至尝试过设置set guifont=MyFontlinux实例.但这没有帮助.
是否有一些特殊的咒语我必须用来在我的VMWare托管的Ubuntu上进行这项工作?它在主机Mac上运行良好.
谢谢
如果我有一个dict例如
d = { 'a': {
"x": [],
"y": {
"z": {
"1": 'loser'
}
}
}
}
print(d['a']['y']['z']['1']) #=> loser
Run Code Online (Sandbox Code Playgroud)
但是,我不知道这个词典中有多少嵌套项目.相反,我有一个键列表,如:
['a', 'y', 'z', '1']
Run Code Online (Sandbox Code Playgroud)
什么是优雅的设置方式d['a']['y']['z']['1'] = 'winner'?
这是我尝试过的:
l = ['a', 'y', 'z', '1']
def change_the_value(d, l, value):
if len(l) == 1:
d[l[0]] = value
if len(l) == 2:
d[l[0]][l[1]] = value
if len(l) == 3:
d[l[0]][l[1]][l[2]] = value
if len(l) == 4:
d[l[0]][l[1]][l[2]][l[3]] = value
# ... ad infinitum
return d
change_the_value(d, l, 'winner')
print(d) …Run Code Online (Sandbox Code Playgroud)