问题是所有使用Vim开发C++应用程序的人.
在我的生命中有一段时间,可以被描述为"我讨厌Vim !!!"......"Vim很好!"
然而,我已经习惯了那些F5- F11在调试代码,监视窗口,调用堆栈和主代码时都是快捷方式 - 所有这些都是可见的,而无需键入任何GDB命令.
所以,这是一个问题:
您是否也使用Vim进行调试?或者为此目的切换到某些IDE?哪一个?
对于那些使用Vim来调试代码的人:是否有插件在编辑器中设置断点,突出显示我们当前正在调试的行,步骤中的自动导航,步入,退出?
请不要告诉我你使用GDB作为命令行,只看到一行被调试,等等.
我使用Git和Github(私人账户).
在这个线程上显示类似的东西,但这里是一个旧文件,添加到一个功能分支,该分支合并到一个开发分支,最后合并到master,因为这样做了很多更改.所以它不一样,所需要的是更改历史记录,并隐藏该文件以保护隐私.
Pre: 我已经在VIM工作了一年了.很多很棒的东西:组合,脚本.每当我在不同的编辑器中编辑某些内容时,如果没有VIM的导航,我会感到迟钝/不舒服.
问题: 最让我困扰的是使用现有工具(ctags,cscope)的源代码导航.通常,ctags找不到变量的声明,cscope而不是ctags查找具有相同变量名的所有定义.与调用树导航相同的疯狂,查找前向声明以及单个类定义等.与Eclipse中的MS Intellisense,Visual Assist甚至源代码导航相比,Exuberant Tags/cscope似乎已被弃用至少10年.
我知道有像ViEMU这样的工具,但它们并没有真正解决问题,因为你失去了很多VIM的功能.
问题: 我想知道是否有一个工具可以更好地解析源代码,或者有一些方法可以将源解析引擎(如Intellisense)集成到VIM中?也许有商业解决方案或有人准备实施一个?
与Visual Assist相比,VIM的所有好处似乎比导航到类定义时浪费的时间更少,而Visual Assist则通过单个Alt-G快捷方式完成.
在VIM中我打开了4个窗口和一个像这样的NERD树:
因此,每当我尝试从NERD打开文件时,它都会在第一个缓冲区(topleft pos)中打开.有时在其他缓冲区.有没有办法打开右下角的文件?Mb有解决方法吗?也许我可以强制NERDtree在最后一个活动窗口中打开文件?目前,这种方式不起作用:(
UPD:看起来问题出在隐藏缓冲区中.缓冲区在一个窗口中打开,然后由另一个窗口替换 - 如果您尝试在另一个窗口中打开第一个缓冲区,您将在第一次打开它的窗口中打开它.
我一直在读这个东西,一个对象的大小至少应该是1个字节(C++:空类的一个对象的大小是多少?)和两个空对象在同一个地址有什么不对?毕竟,我们可以有两个指向同一个对象的指针.
谷歌搜索告诉我有一些关于对象身份fundemantal规则,但我找不到更详细的信息.
所以... $ SUBJ.
Google Play生态系统允许从数据库即云存储中访问评级数据.虽然我可以从Play开发人员的控制台成功下载CSV并对其进行处理,但该文件采用utf-16编码.这是前180个字节:
'255,254,80,0,97,0,99,0,107,0,97,0,103,0,101,0,32,0,78,0,97,0,109,0,101,0,44,0,65,0,112,0,112,0,32,0,86,0,101,0,114,0,115,0,105,0,111,0,110,0,32,0,67,0,111,0,100,0,101,0,44,0,82,0,101,0,118,0,105,0,101,0,119,0,101,0,114,0,32,0,76,0,97,0,110,0,103,0,117,0,97,0,103,0,101,0,44,0,68,0,101,0,118,0,105,0,99,0,101,0,44,0,82,0,101,0,118,0,105,0,101,0,119,0,32,0,83,0,117,0,98,0,109,0,105,0,116,0,32,0,68,0,97,0,116,0,101,0,32,0,97,0,110,0,100,0,32,0,84,0,105,0,109,0,101,0,44,0,82,0,101,0,118,0,105,0,101,0,119,0'
Run Code Online (Sandbox Code Playgroud)
或解码:
u'Package Name,App Version Code,Reviewer Language,Device,Review Submit Date and Time,Review Submit Millis Since Epoch,Review Last Update Date and Time,Review Last Update Millis Since'
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试通过云存储访问评级时:
try:
stats = cloudstorage.listbucket(folder_path)
except Exception as e:
raise
files = [stat for stat in stats]
newest = max(files, key=lambda f: f.st_ctime)
newest_ratings_file = cloudstorage.open(newest.filename)
s = newest_ratings_file.read()
newest_ratings_file.close()
Run Code Online (Sandbox Code Playgroud)
,我收到下一个字节序列(这里是前180个):
31,139,8,0,0,0,0,0,0,0,228,189,201,147,44,219,150,222,181,75,74,53,85,42,149,132,74,133,138,82,53,231,189,42,189,71,137,155,85,209,55,247,221,115,239,203,38,154,236,251,150,65,146,125,223,247,73,47,76,48,96,0,162,4,234,104,198,48,131,17,19,16,102,96,134,193,95,112,7,175,94,25,67,13,48,195,140,25,3,224,251,126,219,35,79,158,200,136,188,55,162,210,12,51,220,210,118,100,132,135,251,246,237,238,43,214,222,107,173,111,125,235,255,249,191,103,195,102,216,14,199,122,221,15,187,225,67,152,214,187,83,189,251,34,12,133,11,253,125,8,203,250,116,21,174,195,97,56,15,103,250,60,162,255,59,236,49,175,215,59,109,223,13,247,236,243,33,76,234,232
Run Code Online (Sandbox Code Playgroud)
这对我来说看起来不像任何已知的编码.尝试使用'utf-8','utf-16','utf-16-be','utf-16-le'进行解码会导致解码错误,例如:
UnicodeDecodeError: 'utf16' codec can't decode bytes in position 170-171: illegal encoding
Run Code Online (Sandbox Code Playgroud)
CharDetect(https://pypi.python.org/pypi/chardet)也没有帮助:(
我不知道下一步要去哪里.伙计们/女孩们,有什么建议如何解决这个问题?Muchas gracias!
我有一个HTML包含3个房间的div.我需要的是在我想要的时候更改任何房间的名称."编辑房间名称"按钮使'contenteditable ="false"'.输入所需名称后,按"验证名称"按钮,但正如您所见,警报消息显示的是先前的名称,而不是新名称.只有当我再次点击房间名称时,"nameTag"变量才会刷新并获取新值.我的问题是在输入所需名称后如何获取值?
以下是演示:
$("#editButton").click(function (){
var idTag;
var nameTag;
alert("DoubleClick the room you want to rename")
$(".roomClass").click(function (){
$(this).attr('contenteditable', 'true');
idTag = $(this).attr("data-room-id");
nameTag = $(this).text();
})
$("#confirmButton").click(function () {
PostData(idTag, nameTag);
})
})
function PostData(idTag, nameTag) {
alert(nameTag + ' with id: ' + idTag + ' was renamed!');
}Run Code Online (Sandbox Code Playgroud)
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div class="vertical-menu">
<h3>ROOM LIST:</h3>
<button id="editButton">EDIT ROOM NAME</button><br>
<a id="content11" class="roomClass" contenteditable="false" data-room-id="0" style="cursor: pointer;">ROOM1</a><br>
<a id="content10" class="roomClass" contenteditable="false" data-room-id="9" style="cursor: …Run Code Online (Sandbox Code Playgroud)