我一直在寻找一个解决方案,把折叠标记和代码的外部隐藏文件。
这样你就可以有永久性的褶皱,而不需要额外的褶皱标志
如何通过Vim中的外部文件控制折叠?这是一个非常普遍的问题。vim中的“外部文件”到底是什么?Vim毕竟是“外部”文件的集合。那么,如果我在vimfiles中定义折叠首选项,这是“外部文件”解决方案吗
例如,您可以定义折叠的正则表达式机制并从外部文件中获取它们
但是我想,你的意思是,“我可以定义一个外部文件,这样我就可以按项目进行自定义折叠,这样在我给他们我的文件后使用vim的每个人都
在vi,search和replace中,如何转义“/”(正斜杠)以使其正确。在一条小路上说
比如:/Users/tom/documents/pdf/
:%s//Users/tom/documents/pdfs//<new text>/g --FAILS (obviously)
:%s/\/Users/tom/documents/pdfs\//<new text>/g -- FAILS with a trailing error
:%s/'/Users/tom/doc
我感兴趣的是找到一种在Vim(而不是GVim)中第80列显示垂直线的方法
我已经使用了设置换行,但我只想显示一条垂直线,这样我就可以自己换行了。这里有几个简单的自动命令答案
:au BufWinEnter * let w:m1=matchadd('Search', '\%<81v.\%>77v', -1)
:au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)
:au bufwanter*让w:m1=m
我想使用shift选项卡自动完成并直观地移动代码块。我一直在说。该链接讨论了映射^[[Z到shift tab。但是当我按下shift tab时,我没有得到^[[Z。在这种情况下,我只得到一个正常的tab
然后讨论如何使用xmodmap-pke | grep'Tab'映射选项卡键
keycode 23 = Tab
or
keycode 23 = Tab ISO_Left_Tab
不管我得到什么
keycode 22 = Tab KP_Tab
如果我使用xmodmap-e'keycode22=
标签: Vim
syntax-highlighting Sass
vim-syntax-highlighting
我刚刚下载了一个用于Sass语法突出显示的Vim插件
说明书上说:
安装详细信息将其转换为语法
目录并添加sass文件类型
哎呀!BufRead,BufNewFile*.sass
setfiletype sass
在filetype.vim中
我已经在vimfiles/syntax/中放置了sass.vim(使用windows)
并在以下所有目录中创建了一个带有上述代码(au!Buf…)的filetype.vim文件:
维姆档案/
vimfiles/ftdetect
vimfiles/ftpl
我正在认真尝试Vim编写Python应用程序。
然而,事实证明Vim非常灵活,我曾考虑将其作为我工作中的主要编辑来撰写律师/法律文件。问题是我的母语不是英语而是希腊语。因此,我将Alt+Shift映射为在英语和希腊语键盘布局之间进行更改
我遇到的问题是,每当我想输入Vim命令时,我必须按Alt+Shift(返回英语)。所以,当我输入文档时,它是Alt+Shift,然后再次Alt+Shift输入Vim命令。这违背了使用Vim的目的,至少在使用速度方面是如此
因此,我的问题很简单:当用非拉丁语(如希
我想写一个函数,我可以将它添加到我的.vimrc文件中,它将调用一个终端命令,然后将它绑定到u
尽管如此,我似乎无法让它发挥作用。我相信我可以使用system()函数,但是文档很少,而且我似乎无法让它工作
所讨论的终端命令是“git push origin master”
我知道git有可用的插件,但我不是在寻找这些插件中的任何一个,只是一个将终端命令绑定到键组合的简单函数
function gitPush()
system("git push origin master")
endfunct
我使用Vim编辑我的Latex文档。根据我提交的会议/期刊、我就读的大学等,我可能希望从英式英语转换为美式英语,反之亦然。有人知道是否有插件可以做到这一点吗?我想即使有,它也会变得不可靠。就像拼写检查器一样,这样的翻译工具无法取代好的校对工具
例如:美国英语是名词或动词的“许可证”。英国英语中动词是“license”,名词是“license”。该工具必须进行语法分析才能得到正确的结果
编辑:更不用说LaTeX命令的问题了,比如\begin{itemize}..我想即使有,它也会是脆弱和不可靠的。
当我使用Vim的J命令时,大多数行都用一个空格来填充。但一段时间后,Vim总是使用两个空格。以以下为例:
This ends with a comma,
but this ends with a period.
Join with 'J' and what do you get?
对我来说,结果是:
This ends with a comma, but this ends with a period. Join with 'J' and what do you get?
逗号后一个空格,
我想知道如何在新选项卡中打开vi(m)中的所有当前缓冲区。
我知道您可以编辑vimrc文件来执行类似的操作,但我更希望能够在需要时运行命令。
我可以通过链接新选项卡和打开缓冲区命令手动执行此操作,例如:
:tabnew | b 1
但我更喜欢更自动的方法。您可以为该命令指定映射:
:bufdo tab split
说明:
bufdo[command]将[command]应用于所有缓冲区
选项卡拆分获取当前缓冲区并用它打开一个选项卡
最后,要绘制此图:
map ,bt :bufdo t
我正在努力使用.vimrc根据文件类型应用特定的配置。根据autocmd文件类型的建议,我尝试应用基于文件类型的配置。以下是我的.vimrc中的内容:
autocmd FileType tex call Tex_config()
function Tex_config()
let g:LatexBox_viewer = 'skim'
let g:LatexBox_latexmk_options = '-pvc'
let g:tex_flavor = "latex"
标签: Vim
Text
extracttext-extraction
我想用vim从文本中提取一些数据。。
数据是这样的:
72" title="(168,72)" onmouseover="posizione('(168,72)');" onmouseout="posizione('(-,-)');">>
72" title="(180,72)" onmouseover="posizione('(180,72)');" onmouseout="posizione('(-,-)');">>
72" title="(192,72)" onmo
我正在寻找一种方法来grep来自Vim的cscope查询的输出
以下内容对我不起作用:
:cs f s symbol !grep pattern
它给出了:
E259: no matches found for cscope query s symbol !grep pattern ...
附言:
我知道redir方法,我正在寻找一种更简单的过滤方法
通过Unix命令输出ex命令。您可以使用:redir将消息输出发送到寄存器或文件
redir @c
cs f s symbol
redir E
我正在使用snipmate插件,我已经将文件类型设置为php.xhtml。当我的文件类型仅为php时,注释工作正常,如下所示:
/**
* <-- This one is add automatically after pressing
* enter in insert mode or 'o' in normal mode.
*/
但是如果我将它设置为php.xhtml,它似乎不再工作了。有什么我应该考虑的吗?我的fo是qrwocb。Snipmate要么只考虑复合文件类型的最后
从vim和love开始,它突出了todo注释。在这里,我们使用一个自定义关键字(first-initial-last-initial-todo:abTODO),因此很容易找到适用于特定人员的todo
我想把我的添加为一个关键字,vi会选择并突出显示todo、fixme和xxx
似乎适用,但使用以下选项不起作用:
syn match myTodo contained "abTODO"
hi def link myTodo Todo
更新
在my.vimrc中,我有以下3行(如建议的)
我有一个文件,上面有一些很长的行,这很痛苦
我正在使用:set wrap和:set linebreak,这很好,我从中反弹了几个键,这样我就可以上下移动一条可见线(而不是一条物理线,它现在已经缠绕在10-12条可见线上)
我使用了相当多的A(追加到行的末尾),但这会追加到物理行的末尾,而不是可见的-是否有一个键映射(或可选的击键)可以用于追加到可见包装行的末尾?键入g$转到可见行的末尾,键入A进入插入模式。我想您可以为此创建自定义映射。g$a-转到屏幕行的最后一个字符,然后追加
想要地图吗
:n
经过几天的调整,我想我已经让vim的autocomplete Omniplete+正常工作了。但令人恼火的是,它仍然为纯文本文件启用,因此我必须键入:disablecp for README或纯文本文件。如何向vimrc添加逻辑,以便在它检测到空文件类型时在启动时禁用Acp
以下是我写的:
if &filetype == ""
let g:acp_enableStartup = 0
endif
但这会在启动时禁用所有文件的Acp。将此添加到vimrc:
autocmd Win
我正在Linux操作系统上使用gvim编辑器处理Verilog。
由于系统故障,我丢失了一些文件。
以前预定义的verilog代码变量过去是彩色的,但现在不是了。
我怎样才能找回那些颜色?
请帮忙 您不必打开语法
:syntax on
或者将其添加到vimrc文件中
syntax on
失去色彩可能是由于缺少verilog语法文件,我的可以找到。我也有一个插件
我在中使用以下行强制检测文件类型:
au BufNewFile,BufRead *.v,*.vh,*.args,*.f,*.veri
我在.vimrc文件中放了以下行:
set timeout
set timeoutlen=2000
set ttimeoutlen=100
然而
:设置timeoutlen?为500。这可能是什么原因?
我安装的某个插件是否可能正在重置该值?我已经安装了nerdtree、nerdtree选项卡、nerdcommentor和supertab插件 您可以通过执行以下操作来检查插件是否干扰您的设置
verbose set timeoutlen?
。它应该告诉你
timeoutlen=500
我在Windows上的主目录中有一个task.otl,它是一种Todo列表,使用以下格式
在无参数启动gvim时,我会自动加载它。不过,我只想打开一次。因此,在新会话中打开交换文件之前,我想在我的.vimrc中检查交换文件是否存在
不管我做什么
:echo filereadable(expand("$HOME/task.otl"))
始终正确返回1。它也适用于我的主目录中的其他文件
但是如果我试着
:echo filereadable(expand("$HOME/.task.otl.swp
我有一个外部脚本,它接收一个Javascript文件并自动修复一些样式问题,我想在写入之前将其应用于当前缓冲区(BufWritePre,FileWritePre)
因此,我的想法是:
w/tmp/foo将当前缓冲区内容写入临时文件
安静!fixStyle/tmp/foo在该文件上运行脚本
将当前缓冲区的内容替换为/tmp/foo
问题是我不知道如何执行第三步。一种方法是删除当前内容(1,$d,即在第1行和最后一行之间删除),并从第0行开始读取目标文件(在第1行之前,以便没有空行):
另一种方
很久以前,我在使用中给出的hack。这个黑客允许我使用gvim编辑任何活动的窗口框架。例如,我可以使用gvim编辑我的gmail回复
不幸的是,黑客不再适合我了。有没有其他方法可以达到同样的效果?或者至少要使用一些具体的浏览器(例如firefox)实现同样的功能?您应该选中(,这是vimperator的一个分支)。它们提供了编辑文本框的功能,但也提供了一些附加功能,允许您以类似于Vim的方式控制firefox
如果您喜欢Vim只用于编辑文本框,您可以尝试firefox插件“It's all te
如果我的问题不是很清楚,我很抱歉。我不知道该怎么说
我想用VIM为我参加的一些课程写论文。我遇到的问题是编辑器中行的格式问题。如果我没有用enter键显式地打断一行的结尾,当我尝试在文本中移动光标时,如果我有一个跨越多行的句子,它会跳过多行。有没有办法使光标能够像在大多数文字处理器中一样在文本中移动?您是否在vim命令行中尝试过以下操作:
:set nowrap
这是因为默认的j和k运动跨越物理线,而不是可见的软包装屏幕线(当您有:set wrap时)。您可以使用gj和gk命令进行此操作
如果
当我使用VIM和buffers时,要查看所有缓冲区的列表,我总是必须键入:ls才能查看所有缓冲区
是否有办法使缓冲区始终显示在vim底部
编辑:
基本上,假设我在Vim中打开了两个文件,如果我输入:ls,它将显示如下内容
1 #h "IModuleTest.php" line 422
3 %a "~/.vimrc" line 1
我想一直看到它们,这样我就可以更快地在它们之间切换,而不是先看到缓冲区列表。有一些插件可以做到这一点;例如
事实上,这听起来很奇怪。你知
在需要格式化代码时,我选择一块代码,然后按Ctrl+Shift+F
在Vim中,这与什么是等价的
例如,假设我们得到以下代码行:
function() {
var test = "Hello, World!";
var test2 = "Hello, World! Again";
}
我想看到的最终输出是格式良好的代码,如下所示:
function(){
var test = "Hello, World!";
var test2 = "Hello, World! Again";
}
我正在尝试使用vim和xfce4终端的灯光日光主题
我安装了xfce4终端的主题:
cd
mkdir solarized ; cd solarized
git clone https://github.com/sgerrand/xfce4-terminal-colors-solarized.git
cp xfce4-terminal-colors-solarized/light/terminalrc ~/.config/xfce4/terminal/
显然,它工作得很好。但是,当我使用vim时
我从文件中复制了一个要搜索的单词
是否有命令以命令行模式粘贴该单词
例如,我在默认寄存器中复制了下面代码中的“static”一词,我想在命令行模式下粘贴它,如下所示
/静止的
1275 static const struct of_device_id omap_mcspi_of_match[] = {
1276 {
1277 .compatible = "ti,omap2-mcspi",
1278 .data = &
我有下一个代码:
command[check_ping]=/usr/lib64/nagios/plugins/check_ping -w $ARG1$ -c $ARG2$
command[check_filemtime]=/usr/lib64/nagios/plugins/check_filemtime $ARG1$
command[check_iostat]=/usr/lib64/nagios/plugins/check_iostat $ARG1$ $ARG2$
command[check_o
Vim是从源代码构建的。我遵循了教程
现在,如果Vim版本7.4.397
这只是我的.vimrc文件的开始(起始行=1=)
"------------------------------------
" Vundle configuration
set nocompatible
filetype off
set rpt+=~/.vim/bundle/vundle
call vundle#rc()
" Vundle management (for updates)
Bundle 'gmarik/
我在用vim编辑用其他编辑器创建的文件时遇到了一些问题(本例中为升华文本)。Vim和Sublime文本的缩进设置似乎相同。看看我用Vim编辑时得到了什么:
用崇高的文字:
这是我的.vimrc:
set autoindent
set expandtab
set smarttab
set shiftwidth=2
set softtabstop=2
你有什么想法吗?这不是缩进问题,而是显示问题。
您可以尝试设置tabstop选项来实现您的目标
:h'ts'以获取更多信息。IMO,这不是缩进问
Spf13 VIM上的许多人想要的行为是吃掉空行上的任何空格或制表符。我正在处理一个现有的项目,在变更日志中有很多这样的变更:
如何阻止Spf13 VIM删除空行上的这些选项卡
编辑:
没关系,它确实有用。现在回答我自己的问题。如果您使用,也许将其pymode\u trim\u空格设置为零将有助于:
let g:pymode_trim_whitespaces = 0
如果使用,可能将其pymode\u trim\u空格设置为零将有助于:
let g:pymode_trim_whitespac
如何在命令行模式下将CTRL-A重新映射到CTRL-Q
我在Tmux会话中使用VIM(将CTRL-A设置为前缀)。当我尝试插入所有名称与模式匹配的文件(例如:bd命令)时,我必须按CTRL-A两次(因为它也是tmux的前缀)。我想用一键划一下
我试图将cnoremap放到我的.vimrc中,但它不起作用。有什么建议吗?这对我很有用;注意,在终端中,Ctrl-S和Ctrl-Q是流量控制的特殊序列。查看如何取消配置,或者使用另一个左手边进行映射,例如谢谢你们让我知道这是一个特殊的键,我不知道
在这种
我正在尝试在保存时调用自动格式化插件
这是我的自动命令:
autocmd BufWrite *.css,*.html,*.js,*.py :Autoformat<CR>
autocmd BufWrite*.css、*.html、*.js、*.py:Autoformat
当我保存时,如果我手动调用:Autoformat,则自动格式化程序将运行
我做错了什么?根据我的经验,你有时需要将它围成一个augroup
augroup autoFormat
autocmd BufWri
我想知道如何在使用Vim LaTeX时只通过键入(、{或[一次])来关闭()、{}和[]等括号。我还想知道如何在Vim关闭括号后将光标结束在括号内。目前,我尝试在.vimrc文件中编写以下内容,但在.tex文件中不起作用:
inoremap { {}<Left>
inoremap {{ {
inoremap {} {}<Left>
inoremap ( ()<Left>
inoremap (( (
inoremap () ()<Left>
in
我开始使用VIM for windows,我从这里下载最小的windows VIM exe:
我创建了位于gvim.exe目录中的简单vimrc文件,如下所示:
vimrc:
问题是,当我执行gvim.exe时,它不会加载vimrc
仅当从vim i运行时,它才会加载:
:e vimrc
:so %
我错过了什么 您的插件、配色方案等应该在这里:
%userprofile%\vimfiles
您的vimrc应该在那里:
%userprofile%\vimfiles\vimrc
我肯定我已
我已经将映射到^,以便将光标移动到行的第一个非空字符(跳过缩进)
我也希望对做同样的操作,但我也希望跳过注释,它允许我轻松地在代码的活动部分移动:
// A line of C:
if (foo == bar) { // Comment
^ ^ ^ ^
| '^' or <Home> <End> '$' or <C-End>
|
在我的.vimrc文件中,我添加了以下行来检查拼写
set spell spelllang=en_us
对于普通文本文件,它工作正常,并突出显示拼写错误的单词。但在python脚本中,它不起作用。有人能提出可能的原因吗?语法脚本启用了拼写检查,仅用于注释、字符串和文档字符串;无论如何,检查Python关键字是没有意义的
可能是某些配置干扰了你的法术选择。核实
:setlocal spell? spelllang?
如果需要,请重新启用。您真的希望vim突出显示拼写错误的单词(几乎包括所有py
当我查看我们其中一台服务器上的文件时,我看到如下内容:
<feff>sku;qty
productsku;1
但是我不想设置^M。我只想看看。
另一个例子是另一个文件中的
我如何设置vim来显示这些特殊角色
~z~编辑~
命令vi--version告诉我以下内容:
VIM - Vi IMproved 7.0 (2006 May 7, compiled Aug 4 2010 07:21:08)
它还表示系统vimrc文件是/etc/vimrc,具有以下内容:
if v:lang
我知道在视觉块模式下,通过(I)可以在多个选定的行中插入,但是我想通过一个函数实现相同的效果,比如说我有一个函数,可以告诉三个亚视觉模式(视觉字符,视觉行,视觉块),如下所示
function! VisualMappingSpace()
let m = visualmode()
if m ==# 'v'
echo 'character-wise visual'
elseif m == 'V'
echo 'line-wise visual'
使用CTRL-W在打开的窗口(拆分)之间移动时会触发什么事件
*CTRL-W_W*
CTRL-W W Without count: move cursor to window above/left of current
one. If there is no window above or left, go to bottom-right
我有一个简单的文本行文本文件。我想为vim(和gvim)文本编辑器创建一个函数,该编辑器
can be sent a variable number of patterns and
it should find lines will all patterns (in any order)
and keep only these lines
while deleting the rest.
我搜索了网络,找到了一些有用的链接,但没有一个可以做到以上所有方面:
以下内容将查找并删除不包含图
我为这个看似简单的问题提前道歉
我有一个示例命令,定义如下:
command! -nargs=+ Exmpl call Example(<f-args>)
function! Example(name)
echo a:name
endfunc
Exmpl 'hello'
但它似乎字面上解释了未经解析给出的参数。因此:
let hello = 'world'
Exmpl hello
不按预期打印world
这显然是我在书中找不到的东西。我尝试过添加各种转义字符,如&,但随
我使用vim,并且我希望能够导航到分布在多个Elm项目中的函数和类型定义。我的理解是,最简单的方法就是使用CTAG
从2016年1月开始,有一个现有的开放网站,提供各种建议,包括一个链接,该链接提供:
--langdef=Elm
--langmap=Elm:.elm
--regex-Elm=/^ *([[:lower:]][[:alnum:]_]+)[[:blank:]]*:[^:].*->.*/\1/f,function,functions/
--regex-Elm=/^ *([[:lo
我最近安装了VimWiki插件,并且正在学习Vim的插件体系结构(最好使用after/ftplugin等目录,而不是将所有内容都塞进我的.vimrc文件中)
我想在编写wiki文件之前调用函数,如下所示:
autocmd BufWrite *.wiki call CleanMarkdown()
但是,vimwiki设置了自己的BufWriteautocommand,用于更新wiki文件中的任何目录。我可以用我自己的函数来完成这个自动命令,该函数调用CleanMarkdown()和vimwiki
我已经阅读了很多关于Vim的可视块特性的文章/文档(例如),但是,当我使用从Git Bash终端调用的Vim时,我仍然无法将可视块前置操作应用于多行。如果我使用的是Windows的cmd或WindowsPowershell,它就可以正常工作
为了清楚起见,在通过Git Bash 2.16.windows.1版环境创建的vim缓冲区中,我遵循以下步骤:
点击CTRL+V(结果是底部显示的文本“视觉块”)
高亮显示多行(仅每行的第一个字符)
点击SHIFT+I(结果是底部显示“插入”)
键入“#”字
比如说
test test word
当前光标位于word下,我想通过word搜索,通常我会选择word并复制它。然后键入:/,粘贴并返回
有快捷方式吗?使用*向前搜索,使用#向后搜索光标下的单词。启动搜索后,可以使用n在同一方向重复搜索,也可以使用n在相反方向重复搜索。或者从你登陆的单词中再次使用*或#
*和\命令基本上启动搜索,就像您使用/\或?\一样。因此,可以在/或?搜索提示处使用向上箭头调用这些搜索。对于单词的任何(也包含)出现(如要求),有g*和g#变体。
标签: Vim
inserttimeoutremap
我的.vimrc中有两个用于插入模式的重映射:
inoremap jk <ESC>
inoremap {<CR> {<CR>}
inoremap jk
inoremap{{}
第一个重新映射应该有一个短的timeoutlen,而后者应该没有超时。原因:我需要第一个重新映射超时,因为jk可以用作常规字符。另一方面,后者是代码完成,超时没有意义
是否可以为不同的重新映射分配不同的timeoutlen?谢谢&BR延长第二个映射超时的一种方法是实际上只映射,然后使
在vim中,有哪些可能的文件类型可以用于编写标准文本——我想偶尔使用代码,但更适合于注释和杂项。我遇到的唯一一个似乎可以接受的方法是ft=markdown,但我相信可能还有其他更适合的方法。这里还可以使用哪些其他可能的文件类型?如果您正在寻找各种基于文本的标记语言,有两个选项:
Markdown(Markdown),它可能是最流行的,但主要是为HTML设计的
ascidoc(ascidoc),可以转换为DocBook、HTML、PDF等
Pod(Pod),主要由Perl使用,并转换为各种格式
标签: Vim
tmuxneovimalacritty
我知道你可以在Vim中使背景色透明,但是你也可以降低颜色的不透明度吗
我尝试过这样做,但没有成功:
highlight Normal ctermbg=000000CC
highlight NonText ctermbg=000000CC
这在终端中是不可能的。在终端中设置24位颜色的序列提供红色、绿色和蓝色的值,但不提供alpha通道。可能您的终端支持自定义转义序列来设置不透明度,但ncurses不会将任何此类序列记录为标准。即使您的终端确实如此,也不意味着tmux或Vim可以成功地调用它
您
我是vim和latex用户。每次编译tex文件时,许多恼人的文件都会与pdf文件一起出现,如.aux、.log、.out等,从而使nvim和Mac文件变得凌乱
如何在vim和iMac中隐藏这些文件?您还可以设置一个Makefile,它将处理所有删除操作。有一次我写了一本书,那是它的makefile:
# Based on http://wikiri.upc.es/index.php/A_Makefile_to_compile_Latex
# by: Joenio Costa <joenio
1 2 3 4 5 6 ...
下一页 最后一页 共 257 页