如何在vi中的选择中查找和替换?此处有更多帮助如果您使用视觉模式进行选择,则:
:'<,'>s/regex/replacement/options
:”在视觉模式下选择文本(我想这就是您正在做的),然后按:开始键入命令,您将在命令行中看到如下内容:
:'<,'>
:”如果要对文件中的所有实例进行全局搜索和替换(使用可选正则表达式),我将执行以下操作:
:%s/foo/bar/g
省略g以进行局部替换。此处建议的大多数其他解决方案适用于发生选择的整个行,这可能不是您想
在编辑.scm文件时,如果Vim能在我开始()时自动放置结束大括号,那就太好了。你可以根据自己的喜好映射开始大括号:
:imap ( ()<left>
:imap()
尝试使用插件。关于这个主题有很多提示和插件。请查看vimtips站点中的。我也需要一个,并且我已经尝试了一些插件:
自动关闭,有点咄咄逼人
简单配对,取决于Python。如果您在Linux上,这不是问题,但在Windows上,将Vim版本与您拥有的Python解释器匹配可能会有问题
我的建议是ClosePairs,您
我通常使用gVim进行编辑,但有时在远程连接到我的机器时使用vim
当我在gVim中打开一个文件,并且该文件已从外部更改(例如,存储库中的新更新)时,gVim提供重新加载该文件
然而,当Vim发生这种情况时,在您尝试保存该文件之前,它不会执行任何操作。它只是警告您文件已更改,但不提供重新加载
是否存在使Vim的行为与gVim匹配的设置?这是使用名为FileChangedShell的自动命令完成的。我是个新手,不会发布链接,但是你最好的选择是阅读vim文档中的autocmd部分(用谷歌搜索)
但要
如果Vim看到不一致的行尾,它将不会转换文件格式。如何找到这些内容?将\r\n替换为\n,然后再将\r\n替换为\r\n怎么样
应该是这样的:
:%s/\r\n/\n
:%s/\n/\r\n
要将所有\r\n为\n的行尾更改为\r\n,请使用
:%s/\r$//
这将搜索紧跟着换行符的所有\r字符,并将其替换为换行符。请使用dos2unix或unix2dos之类的实用程序将换行符转换为所需格式。unix和windows系统都有这些实用程序的本机实现。Zero width look b
back到单词的开头,delete到下一个word在正常模式下(按Esc键后),您需要的是以下按键:
diw(意思:删除内部单词)
-或-
daw(意思:删除一个单词)
第二个命令还删除单词后面的所有空格,如果单词后面没有空格,则删除单词前面的所有空格
有关更多相关命令:
:help diw
:help daw
我发现“diw”(删除内部单词)是直接删除单词的方法 进入正常模式后(按Esc键)
fspacedb
will删除这个词。这是如何与编程相关的?还有谁会使用vim?@Adam——一位数
让我们说,我扯下了下面这个词:
奶酪。
现在我想在文本文档中查找奶酪。我按了正斜杠(/)。。。这就是我的终点。
有没有办法用拉扯过的词来搜索?另外,是否有一种方法可以使用拉长的单词进行替换(s:/yanked/beef/g)?最近拉长的文本将存储在0和“寄存器中(如果没有明确指定寄存器,例如”xy)
然后,您可以使用Ctrl-RX将任何寄存器的文本粘贴到最后一行(搜索模式/或最后一行命令模式:),其中X是您要粘贴的寄存器
例如:
/Ctrl-R0
将在正向搜索命令模式中粘贴寄存器0的内容
猛拉文
我正在使用
:set noet|retab!
但我遇到的问题是,它将整个文件中4个空格的所有实例替换为选项卡。
我需要vim只替换行开头的4个空格的实例
如果我把它拿走!在retab的末尾,不会在任何位置替换空格
我尝试过使用某个人创建的自定义函数:
" Retab spaced file, but only indentation
command! RetabIndents call RetabIndents()
" Retab spaced file, but only indentat
在indent/html.vim中使用indent/javascript.vim作为标记的最佳方式是什么
编辑:
同位语,正如我建议的那样,我真的应该多给你一点,这样你就可以帮助我了
可以找到我的vim设置
我目前正在使用来自的html.vim
我正在使用来自的javascript.vim
对于预期的文件类型,这两种方法都非常有效
谢谢
戴夫你想解决的问题是什么?什么不起作用?这是什么意思
通过发出以下命令,您可以告诉Vim该文件是一个HTML+JS文件(因此可以利用这两种特定于语言的特性集):
我需要一个:命令来切换窗口,因为我正在函数中使用它。所以W不行。使用:
wincmd k
我得到了我需要的我在函数中使用普通w时也遇到了问题
我的问题是,我在execute中运行它,您需要从第一个尖括号中退出,结果是execute(“normal\w”)。希望这仍然能帮助一些人理解它
有关更多帮助,请使用:help normal和:help在Vim中执行哦,不,我可以使用wincmd w但我不知道。为什么normal w会失败?@CiroSantilli,因为我使用的是Vim函数。我试过正常!
我开始使用vim和zencoding插件。例如,我键入div,点击mapkey并得到以下结果(其中我是光标位置):
I
如果我点击回车键,我会得到:
<div>
I</div>
我
但是我想得到这个(就像在SublimiteText2中使用相同的zencoding插件):
我
我怎么做?也许在zencoding插件或vim中的secret mapkey中有一些设置
对不起我的英语
UPD我尝试使用SparkUp,但根本不起作用。我的vimrc文件中有Pytho
假设我有一个函数,给我一个作为参数传递的字符的ASCII值,并将其命名为AsciiFunc(已经晚了,我想不出有创意的名称了)。是否可以定义一个调用AsciiFunc并将键入的字符传递给它的映射。例如,如果函数映射到a,则按af将调用函数ascifunc并将“f”作为参数传递
为了避免混淆,我知道ga给出了光标下字符的ascii和其他信息,这不是我要寻找的。我正在寻找一种方法,以避免为AsciiFunc可以作为参数的每个可能值创建多个映射。您可以在AsciiFunc()内部调用getchar()
我无法让水平分割工作。Ctrl+enter不执行任何操作,Ctrl+S不执行任何操作
我已经在谷歌上搜索了一段时间,到目前为止,我找到的唯一解决方案都与OSX有关
在ArchLinux和Ubuntu上,都有相同的问题(但配置也相同)
我没有使用Janus或类似的东西,只是一个非常基本的配置
set t_Co=256
set tabstop=2
set expandtab
set shiftwidth=2
set fileencoding=utf-8
set encoding=utf-8
set
我想使用Vim进行无干扰的写作,而不是使用PyRoom/TextRoom,其中提到了VimRoom,可以告诉我如何获得大多数设置
我只想知道如何启用文本室样式的流模式:
如何禁用退格和删除键(而不是像d$这样的快捷键)?您可以通过将单个键映射到特殊的目标来禁用它们:
:inoremap <BS> <Nop>
:inoremap <Del> <Nop>
:inoremap
:重新映射
(假设您只希望在插入模式下禁用它们。)您可以在没有vim的情况
关于如何更改pythonshell编辑器,我总是有这样一个问题
简单的例子:
$python
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> help(datetime)
help
我正在尝试对病原体进行正确的vim配置。
特别是,我以推荐的方式安装在bundle文件夹中:
$ cd vim-colors-solarized/colors
$ mv solarized.vim ~/.vim/colors/
因此,我可以使用好的颜色主题,并且我有solarized文档。然而,用solarized给出的小脚本不起作用。它映射不正确,我无法从命令行调用它。但我看不出有什么不对
这是我的包文件夹的组织:
- Bundle
- vim-colors-solarize
我有VIM 7.3版,其中spf13捆绑包在Debian Linux上运行。我希望vim不要转换任何行尾,只需将它们放在一边。我怎样才能做到这一点呢?我知道发生了什么。首先,我假设vim正在更改我的行尾,因为每当我更改文件中的任何内容,然后查看svn(或git)中的差异时,我都会看到一堆我从未接触过的修改过的行。此外,这些行似乎都没有任何变化,所以我假设发生变化的一定是行的结尾。我错了
这里实际发生的事情是在我的.vimrc文件(随spf13扩展包提供)中使用了autocmd函数,它本质上允许您
换句话说,正如您可以使用:s/x/y/g和:s | x | y | g和:s#x#y#g一样,您也可以使用:v\0x\0y\0norm 0?下的文本说明了可能的分隔符:
与围绕模式和替换字符串的“/”不同,您可以
可以使用任何其他单字节字符,但不能使用字母数字字符,
“\”、“”或“|”
请注意,(显示为^@=CTRL-@)在内部表示为换行符(ASCII 10)(请参见:help),但您可以通过CTRL+V、0 0 0或CTRL+V、CTRL+@在命令行中输入它
因此,尽管您可以使用分隔符字符键
我在论坛上发现了这段代码,它让我在标签之间切换时的生活更轻松,我把它放在了我的~/.vimrc中。幸运的是,它工作得很好。不幸的是,每当我按ctrl+tab键更改tab键时,光标都会向后移动一个字符。有人能帮我把光标放在一个地方吗
set showtabline=2
:nmap <C-S-tab> :tabprevious<cr>
:nmap <C-tab> :tabnext<cr>
:nmap <C-t> :tabnew<cr&
我有一组表示设计的平面文件(对于好奇的人来说,这些是游戏《矮人堡垒》的堡垒蓝图):
其中一个看起来像这样:
`,`,`,`,`,`,d,d,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,d,d
`,`,`,`,`,`,d,d,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,d,d
`,`,d,d,d,d,d,d,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,`,d,d
`,`,d,d,d,d,d,d,`,`,`,
假设我在python脚本中有以下文档行
def cdf():
"""
Each line in the printed output will contain a fraction and a number, such that
the given fraction of all numbers in the log file have values less than or
equal to the given number.
"""
如果我突出显示字
标签: Vim
vim-pluginclang-complete
我已经在谷歌上搜索了大约一个小时,很多人都有同样的问题,尽管我似乎无法得到答案。我正试图让clang_完成工作,我知道我需要Vim中的Python支持。根据:version,我的Vim编译缺少-python和-python3。简单问题:在Linux Debian上,如何使用python支持重新编译Vim?要启用python解释器,请尝试
./configure --enable-pythoninterp=yes --enable-python3interp=yes && make
通常,Ctrl-]的默认映射似乎是“光标下的查找标记”。如果我想要所有可能的标签点击列表,我必须按“g”,然后按ctrl-]
我如何noremap成为g+“光标下的查找标记”?我希望结果会像往常一样出现在屏幕底部的窗口(?)中
当然,我之所以想要这个,是因为我经常忘记“g”。有时候,最明显的解决方案就是你所需要的:
nmap <C-]> g<C-]>
nmap-g
我从来没有意识到这个主题是相同的,但是,是的,它是重复的。
假设我有一个映射到函数的键。当按下该键时,vim的动作就好像该键被按下了很多次(应该是这样),并多次调用该函数。当函数需要一段时间才能完成时,会出现问题。读取输入键的速度快于进行函数调用的速度。释放键时,该函数仍被调用多次。我想在按键释放时停止调用该函数。这可能吗
如果我的故事不清楚,让我举个例子。我正在使用插件vimsmoothscroll。按“K”键时,它会在大约0.5秒内将光标向上移动15行,从而产生平滑的滚动效果。假设我按住“K”键1秒钟。这为完成2个函数调用提供了时间。然而,Vim将其
当使用:Ex搜索当前项目下的文件时,我希望通过搜索跳过某些目录。netrm文档说可以使用“g:netrm_list_hide”选项来实现这一点,但我对这些选项的实验表明,它只适用于文件名,而不适用于目录名
谷歌搜索也无法解决这个问题。有人知道解决方法吗?摘自
要隐藏目录名,只需在列出它们时添加一个尾随斜杠。例如,要隐藏目录.git/,请使用以下命令
let g:netrw_list_hide='^\.git/$'
我想你的意思是netrw?我不知道有什么名字叫netrm
有没有办法不显示某些windows-MinibufeExplorer或NERDTree的状态行(我正在使用)
您可以在本地清除'statusline'设置(am空值将显示默认值,但您可以只选择背景色组,使其有效消失):
要将其自动应用到MiniBufExpl窗口,您可以使用一个:autocmd,或者基于特征缓冲区名称(bufWinter事件),或者如果插件在filetype事件上设置了一个'filetype'。是的,我认为这是我们能做的最好的事情。非常感谢。
:setlocal statusli
标签: Vim
intellij-pluginideavim
在ideavim插件中折叠和扩展代码块的关键绑定是什么
(za适用于eclipse的vrapper,但不适用于ideavim)来源:
zo在光标下打开一个折叠。当给出计数时
许多深的褶皱将被打开。在视觉模式下,一级
将为选定区域中的所有行打开折叠
zc关闭光标下的一个折叠。当给出计数时
许多深的褶皱闭合。在视觉模式下,一层褶皱
对于选定区域中的所有线,此选项都是关闭的。
将设置“可折叠”
zM关闭所有折叠:将“foldlevel”设置为0。
将设置“可折叠”
zR打开所有褶皱。这将“foldle
我的一些映射将打印一些字符,而不是执行我想要的命令。看起来有时候执行速度不够快。它通常发生在我快速编程输入和扩展方法之后
以该映射为例:
inoremap <leader>s <ESC>:w<cr>
然后我点击回车键,代码扩展到
public function something()
{
|
}
然后我继续实施:
public function something()
{
return "something|"
}
当执行s该位置的文件时
今天我有一个简单的问题。我正在使用这个vim配置-
问题在于铿锵完成。它可以工作,但当我想添加更多的包含以获得更好的完成时,就什么都没有发生——它不会检测到新的头
例如,获取#包括。这是我添加到.clang_complete文件中的内容,该文件位于main.c所在的目录中:
-I/usr/include/x86_64-linux-gnu/sys/
我通过调用
find/usr/include/-name-types.h
有什么不对劲?您能给我看一些包含unix头的工作.clangu_完整文件吗?
Vim的dot重复功能是其最强大的功能之一,其强大的根源不在于它的能力如何,而在于它的简单和快速
这实际上有点有限。例如,我经常希望它能做的事情是多“记录”一点。例如,我在bash脚本中有一个很长的行,我想缩短它来清理脚本
注:我使用方括号演示Vim光标的位置
[y]um -y install autoconf automake binutils bison flex gcc gcc-c++ gettext libtool make patch ftp pkgconfig man ncurses
我使用vundle安装了YouCompleteMe。
然后安装所有插件并使用
./install.sh --clang-completer
以下是我的vimrc的外观:
syntax on
set expandtab
set cindent
set tabstop=4
retab
set shiftwidth=4
set hlsearch
set paste
set ic
set number
colorscheme molokai
set t_Co=256
set nocompatible
我需要转换
for(int到for(int
自动在我的vim编辑器中
因此,我在我的vimrc中写了以下声明
iab for(int for (int
但它给出了以下错误
line 158:
E474: Invalid argument
这个错误的原因是什么
另外,我如何编写一个通用语句来转换
for(int to for (int
for(;; to for (;; etc...
缩写有三种类型:
完整id缩写仅包含'iskeyword'字符
end id缩写以'iske
我在任何地方都找不到这个问题,所以这是给下一个人的
不知何故,我的vim,它是高度定制的,有大量插件,比我想调试的复杂得多,间歇性地陷入一种状态,如果我点击“u”,它会说“已经在最早的更改中”。当我按CTRL-R时,它说“已经在进行最新的更改”。但它不会撤销或重做任何事情
非常令人沮丧。当undolevels为负值时会发生这种情况,这显然是用来防止vim undo耗尽内存的。出于某种原因,我的undolevels设置为-123456
将你的水平设置为一个大的正数,比如999999,一切都会恢复正
标签: Vim
vim-syntax-highlighting
我希望每当我正在编辑的任何文件包含单词TODO或LATER时,都应该使用TODO突出显示组对其进行语法突出显示
我在~/.vimrc中有以下内容
colorscheme elflord
syntax keyword Todo TODO LATER
我在一个名为foo.txt的文本文件中有以下内容
TODO foo
LATER bar
当我打开这个文件(gvim foo.txt)时,我看到应用了elflord配色方案,但没有突出显示TODO和以后的
但是,当我在命令行模式下输入:syntax关
K在新窗口中显示当前单词的手册页
但是,:Map以水平分割的方式显示它(在将运行时!ftplugin/man.vim添加到.vimrc之后)
如何设置vim以在新窗口中打开手册页
我知道我可以通过点击Ctrl-w来最小化拆分,但是有没有办法从一开始就在新窗口中打开它?您可以定义自己的命令,而不是加载ftplugin/man.vim:
:command! -nargs=+ Man !man <args>
:命令-纳格斯=+人!人
这定义了一个命令Man,它接受一个或多个参数(-na
我正在用vim编辑一个文档,它不是代码。我是vim新手,来自Windows背景。我正在尝试选择一块文本并更改其颜色。我知道如何使用视觉模式选择文本。你能告诉我如何改变选择的颜色吗
我想定义预设,例如红色、绿色、蓝色、黄色等,并对所选文本执行类似操作-:set color=red
这可能吗?你能告诉我怎么做吗?请检查。
m要启用映射,您可以选择文本并使用不同颜色高亮显示,如下所示。(限制:不支持列选择。)
突出显示模式的简单示例==>文本要突出显示。
您还可以在模式中指定regex
hi-Cus
我是维姆的新手。我按了太多按钮来进行基本的文字换行:
string->“string”
多字长串->多字长串
a+b*c->(a+b)*c
(elem0,elem1,elem2)->[elem0,elem1,elem2](可选)
我正在手动执行所有操作:进入开始、插入模式、按键、正常模式(第二个字符也是如此)
如何做得更快?例如:直观地选择文本,智能地将其与所需内容包装在一起。甚至没有视觉选择。您可以使用visuall模式进行此操作。例如,您有字符串^将是光标定位。在正常模式下启动
1. str
如果我有
- 'autoindent' is set by default
- 'autoread' is set by default
- 'backspace' defaults to "indent,eol,start"
- 'backupdir' defaults to .,~/.local/share/nvim/backup (|xdg|)
- 'complete' doesn't include "i"
- 'directory' defaults to ~/.local/share
在vim输入字段上键入密码时,不应显示密码(或应显示类似******的内容)。如何实现这一点?您可以尝试使用inputsecret()函数:
let username = input('Enter username: ')
let passw = input('Enter password: ')
来自:h inputsecret()的函数说明:
很抱歉成为那个家伙,但你应该考虑不要这么做!
let username = inputsecret('Enter username: ')
le
我在学维姆。当我打开程序时,我会遇到以下情况:
The airline statusline funcref function('airline#extensions#mundo#statusline') has already been added.The airline statusline funcref function('airline#extensions#mundo#statusline') has already been added.
:
该错误消息表明您已安装了两次airl
我在vim中工作,我的操作系统(Mac OS X El Capitan)崩溃了
我试图从vim(通常)创建的.swp文件中恢复。但是,我注意到vim并没有创建它们。我已经设置了交换/备份目录,但运气不好
顺便说一句:我正在使用这个广为人知的vim配置()我发现了这个问题,IDK为什么默认情况下,如果您使用这个广为人知的vim配置(()),备份和交换模式将被禁用
要修复它,只需将这些行添加到vim配置文件中
set swapfile
set backup
我发现了一个问题,IDK为什么,但是如果
我已经找到了如何更改文件夹等的颜色,但是当光标在上面高亮显示时,我该如何更改它呢
我不喜欢突出显示的文件夹变成白色。我希望它保持灰色,因为让它变成与文件相同的颜色太令人困惑了
用于终端vim
:highlight CursorLine ctermfg=grey
麦克维姆
:highlight CursorLine guifg=grey
请参阅:帮助突出显示以了解更多选项
您可能想试试这个插件github.com/tiagofumo/vim nerdtree syntax highlight。
我似乎无法让任何xml.vim插件为我的vim设置工作。我试过两种(及其前身)。它们似乎完全没有功能。我试图从vim(:help xmlc-d)中查看他们的文档,除了默认的xml语法帮助之外,没有显示任何内容
我一直在使用标准方式(例如,git克隆)病原体安装它们https://github.com/sukima/xmledit.git ~/.vim/bundle/xmledit)。安装后,我尝试打开test.xml文件以加载helptext,但没有结果
我在这里看到了另一个问题,但没有解决,也
也许我的问题的答案是显而易见的,但即使经过一段时间的搜索,我也找不到任何有用的东西
我目前正在编写一个小型vim latex自动完成插件,它根据编辑上下文建议完成。代码的相关部分如下所示:
function! Complete_latex(findstart, base)
if a:findstart
" locate the start of the base
"....
else
if s:envname_required()
大多数人说vim是最伟大的编辑
但有没有什么方法可以像升华一样快速地重命名变量呢
例如:
function f($items) {
$items;
....
$items;
}
庄严地说:
转到项目变量
单击ctrl+d两次
重命名变量
在VIM中:
搜索/项目
连续波
写下新名字
“n”表示下一次出现,然后“.”表示重复
显然,在vim中,击键次数更多
有人知道更简单更快的重命名变量方法吗
谢谢解决方案很少:
更改命令
转到项目,然后点击:
*Ncgn{new nam
给定一个现有的参数列表
file1.txt [file2.txt]
我们如何将一个或多个文件附加到该列表中,使其看起来像这样
file1.txt [file2.txt] file3.txt file4.txt
我所尝试的:
args {:args file3.txt file4.txt}
你在找命令。[count]影响位置,默认为当前条目。在你的例子中,一个简单的
:argadd file3.txt file4.txt
行。还有一个变体可以立即切换到添加的文件(以及有关参数列表管
我只是好奇,为什么我必须使用视觉块选择来插入多行而不是视觉行
造成这种差异的幕后原因是什么
提前谢谢 您可以将其理解为“行模式”和“列模式”。如果要在多行的同一列中添加内容,请使用“ctrl-v”(列模式)。您可以将其理解为“行模式”和“列模式”。如果要在多行的同一列上添加内容,请使用“ctrl-v”(列模式)。分块选择是更通用的选择,即允许在任何位置插入多行。当然,您可以将linewise(甚至characterwise)选择视为这种情况的退化情况,但它不太通用(linewise只允许在第1列
作为一个上下文,我正在考虑为vim制作一个插件,该插件将沿着左边距(理想情况下是数字列的左边)内联特定的调试和/或分析信息,需要4-5个字符宽。然而,我找不到任何方法来实现这一点。我已经到处搜索过了,我能找到的最接近的东西是用于在符号列中插入符号的vimscript代码,但符号列的宽度固定为2个字符
我考虑过制作自己的临时列(在数字列的右侧,在正常可编辑的文本区域)并以某种方式将其标记为只读的可能性,但这似乎也不可能——根据我所读的,整个缓冲区必须是只读的或非只读的;您不能仅将一部分设置为只读
在my.vimrc中,我有一个函数:
function! SetPHPOptions()
setlocal shiftwidth=4 tabstop=4 softtabstop=4 expandtab
if !&diff
call tagbar#autoopen(0)
endif
endfunction
这称为:
autocmd FileType php call SetPHPOptions()
但是当我运行vimdiff file1.php file2.php时
我试图告诉neovim在关闭其配置文件(sxhkdrc)后杀死sxhkd并运行sxhkd。这就是我的init.vim中的内容
autocmd BufWritePost *sxhkdrc pkill sxhkd; setsid sxhkd
我得到以下错误
"sxhkdrc" 9L, 136C written
Error detected while processing BufWritePost Autocommands for "*sxhkdrc":
E492: Not an editor c
我是新来的维姆和我学到了f键可以重复;今天的钥匙
但是我已经用过了;作为领导者的关键。
有没有办法使用。改为键?当然,您可以映射。做……的工作;:
但是,这样您就失去了的功能。(重复上一个更改),除非重新映射该更改
冒着听起来说教的风险,但从长远来看,适应Vim比尝试适应Vim要好得多——至少在你不再是初学者之前。例如,在这种情况下,我会说。(重复最后一个命令)是比;(重复上一次f-search)是,特别是因为leader可以作为默认键\as,或空格作为键,丢失的可能性要小得多。谢谢您的建议!(