阅读c++代码中,我门在linux上直接vim打开,简单的搜索"/<symbl>"搜索关键词。这个搜索出来的类似有Find查找。但其实在c++代码中有个更高级的功能-符号解析器。这类似我们在IDE上使用的那些快捷查找指令“符号的定义”,“符号的声明”,“符号的调用者”。
我的vim版本是8.1,这个版本可以在vim中直接调用terminal,并且自带的插件管理器。如果你不是8.1的vim版本,可能无法使用我下面的插件安装方法,需要自行百度下载一个插件管理器了。
配置vim可参考https://blog.csdn.net/ywgdk/article/details/53607874等博客。
上面是建立了三个任务,并且都ctrl+z给stop掉了,然后用jobs查看,一共有三个stop的任务
如何阅读代码还要单独写一篇文章?难道不是随便用一个IDE就可以了吗?回到上一篇文章里介绍的那个问题,需要修改uboot里board_mmc_init函数里的writel(0x66666666,REG_MFP_GPD_L) ,对于初学者如何在uboot代码里找到这句话呢?当时问我这个问题的网友就有这个困惑。
1、安装Vim和Vim基本插件 首先安装好Vim和Vim的基本插件。这些使用apt-get安装即可: lingd@ubuntu:~/arm$sudo apt-get install vim vim-scripts vim-doc 其中vim-scripts是vim的一些基本插件,包括语法高亮的支持、缩进等等。 vim中文帮助文档tar包下载地址: http://sourceforge.net/projects/vimcdoc/files/vimcdoc/ 解压后其中有个doc文件夹, 将其中的内容全部复制到~/.vim/doc, 或者vim安装目录下的doc目录中, 此时vim中的help信息已经是中文的了. 网页版中文帮助文档网址http://vimcdoc.sourceforge.net/doc/help.html 首页就时vim帮助文档的目录,阅读起来更方便有效、更有针对性! 2、Vim配置文件 Vim强大的功能,其来源基本上就两个地方:Vim插件以及Vim配置文件。 Vim本身的系统配置文件夹是在/usr/share/vim/和/etc/vim/两个文件夹下。一般情况下,我们不会去改变这两个文件夹下的配置文件,而是在用户文件夹/home/user(其中,user为用户名,我的用户名是lingd)下建立自己的配置文件。进入用户文件夹(/home/user/)之后,用gedit新建一个名叫.vimrc的文件: lingd@ubuntu:~/arm$ cd ~ lingd@ubuntu:~$ gedit .vimrc 注:使用gedit主要是为了方便大段大段的文字粘贴! 然后把下面的文字拷贝进这个文件之后保存:
作为一个安服仔,代码审计是一项必备的技能。说好听点是 code review,说直白点就是看代码。说起代码审计这件事,大家都比较关注 source、sink、漏洞模式,而对于代码审计的工具却谈及甚少。因此,本文就来抛砖引玉,谈谈笔者自己的经验。
学到了不少东西。知道了一个网站 http://kernelnewbies.org,一些FAQ , 摘录如下
软件开发听上去高大上,但实际很简单,全部活动可以分为两类:造轮子,搭积木。这和建筑行业很相似 —— 甚至相似到软件业懒得自己编词,借用建筑业的architect这样的title为自己所用。我的理解「造轮子」就是做一些基础性的工作,如os,compiler,database,protocol(如tcp/ip),algorithm(如DH,RSA),framework(如rails)等,「搭积木」则更多是应用性的工作,利用手边的组件和工具,做出新的产品和工具。「造轮子」需要的知识和能力一般而言要高于「搭积木」(
一般来说,如果我们想要研究一个c/c++项目的源码,我们首先要做的是为该项目生成tags文件,linux内核是c写的,所以它也不例外。
首先安装cscope [root@cutbag sys]#tar jxvf cscope-15.7a.tar.bz2[root@cutbag sys]#cd cscope-15.7a[root@cutbag sys]#./configure --prefix=/usr&&make&&make install 然后安装vim [root@cutbag sys]#tar jxvf vim-7.2.tar.bz2 [root@cutbag sys]#GUI_INC_LOC="" GUI_LIB_LOC="" C
基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面 VIM 就像一个“哑巴”编辑器一样。很多新手都会一直呆在插入模式里面,因为这样易于使用。但 VIM 的强大之处在于他的命令模式!你会发现,在你越来越了解 VIM 之后,你就会花越来越少的时间使用插入模式了。
作为编辑器之神的vim,初安装时,就像十几岁的孩子,潜力无限但能力有限。所以当我们要充分开发它的潜能时,那么就不得不对vim进行扩展,也就是安装插件。(当然了,如果你不想定制自己所需要的插件,只是想一键安装,然后满足你几乎所有对vim的需求,那么你可以尝试spf13-vim github地址:https://github.com/spf13/spf13-vim) 下面介绍部分插件的安装,以满足基本的代码阅读或者项目开发的需求。
然后把_vimrc配置文件放到安装目录下。这个配置文件是之前别人写好的,用着有点儿问题特意改了下。稍后附件中会附带这个。直接能用。
“””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
[root@btg ext4]# make help Cleaning targets: clean - Remove most generated files but keep the config and enough build support to build external modules mrproper - Remove all generated files + config + various backup files
vim博大精深,先看看有哪比较使用的vim插件 Linux 为源代码生成ctags: 1.sudo apt-get install ctags安装vim插件 2.cd到代码根目录,比如说cd ./linux-5.x.x 2.生成tags文件,根目录执行ctags -R xxx(xxx为需要生成tags的文件目录)
打算重新折腾下环境,看中了gtags ,可参考 Vim 8 中 C/C++ 符号索引:GTags 篇 ,先记录下编译过程
if has("gui_win32") source $VIMRUNTIME/vimrc_example.vim "source $VIMRUNTIME/mswin.vim set nocompatible "behave mswin " Remove menu, scroll bar and tools bar set guioptions-=m set guioptions-=r set guioptions-=T " Command ToggleView let s:view_
上篇我贴上了我使用的vim配置及插件配置,有这些东西只能是一个脚本堆积,无从谈高效的代码阅读开发。 下面我们就来写经常使用的命令,就从配置F系列快捷键开始吧。 F+ n 快捷键配置 F1基本上时帮助,这个貌似不能被 Terminal帮助使用了, F2显示或者不显示行号,默认情况是显示的,在需要copy的一些操作时候这个是很有用的 F3换行显示或者不换行显示,在有些如Makefile命令较长的情况可以用它来快速修改其中的东西,默认情况是不换行 F4呼出文件的函数列表(TagbarToggle) F5
GDB 是一个由 GNU 开源组织发布的 *.nix 下的、基于命令行的一款比较知名的程序调试工具。
用 vim 也有一段时间了, 真心是越用越好用, 现已作为敲代码主力以及默认文本编辑器。
首先,已经安装过vim的需要检查是否开启了python解释器,vim --version | grep python,如果显示python前面是-号而不是+号,则需要重新编译安装才行。 1.编译安装vim之前,需要配置环境 sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev libgtk2.0-dev libatk1.0-dev libbonoboui2-dev libcairo2-dev libx11-dev libxpm
从Vim的网站下载vim,建议下Self-installing executable的版本。
最近CodeBlock发布了17.12版本,于是就想第一时间体验一下新版本。在安装的过程中遇到了一些问题,记录下来当一个备忘吧。 0x1 离线版本下载 去官网下载最新的版本文件。点此直达 codeblocks_17.12-1_amd64_stable.tar.xz 解压文件到一个文件夹。在这个文件夹打开终端,输入 dpkg -i *.deb 12 dpkg -i *.deb 不出意外的话,程序就已经出现在启动器啦。 0x2 安装g++编译器 运行CodeBlock编译代码时会报错,提示没有g+
centos7.3自带的vim是7.4.*版本, YouCompleteMe需要Vim 7.4.1578+ 我这里编译安装vim8.0
安装python3.7 https://www.python.org/downloads/
最近在重新配置Vim,也在GitHub上找了三个star和fork数目很高的方案,在这里分享给大家: https://github.com/amix/vimrc - star 3,482 ; Fork
注意:语言本身的位置好说,但是dev开发库就不一样了。 比如,一般我们本机只安装python,而不会安装python-dev。这是两个完全不一样的概念。第一个我们直接使用的语言,第二个是本机编译、开发能够引用的开发lib库。 所以,根据语言支持的需要,我们要安装这些开发库:
需求:配置vim使能支持python程序开发的类似IDE环境,实现代码不全、语法高亮等功能。
;;普通设置 (setq inhibit-startup-message t);关闭起动时闪屏 (setq visible-bell t);关闭出错时的提示声 (show-paren-mode t);显示括号匹配 ;(set-default-font "-adobe-courier-medium-r-normal--14-100-100-100-m-90-iso10646-1");;字体设置 (column-number-mode t);显示列号 (setq frame-title-format "%n%F/%b");在窗口的标题栏上显示文件名称 (mouse-avoidance-mode 'animate);光标靠近鼠标指针时,让鼠标指针自动让开 (setq default-frame-alist '((height . 25) (width . 80) (menu-bar-lines . 80) (tool-bar-lines . 80)));设置窗口启动大小 (fset 'yes-or-no-p 'y-or-n-p);以 y/n代表 yes/no (setq-default make-backup-files nil);;不要生成临时文件 (setq x-select-enable-clipboard t);;允许emacs和外部其他程序的粘贴 (setq mouse-yank-at-point t);支持中键粘贴 ;(show-paren-mode 't); 高亮显示匹配括号 ;;自动插入匹配的括号 ;; enable skeleton-pair insert globally (setq skeleton-pair t) (global-set-key (kbd "(") 'skeleton-pair-insert-maybe) (global-set-key (kbd "[") 'skeleton-pair-insert-maybe) (global-set-key (kbd "{") 'skeleton-pair-insert-maybe) ;;热键设置 (global-set-key [f9] 'delete-window);F9 关闭d当前窗口 (global-set-key [f8] 'other-window);F8窗口间跳转 (global-set-key [(f2)] 'ansi-term);F2 切换到shell模式 ;(global-set-key [f3] 'split-window-vertically);F3分割窗口 (global-set-key [f12] 'my-fullscreen);F12 全屏 (global-set-key [(f4)] 'compile);编译 (global-set-key [f5] 'gdb);启动gdb (global-set-key [(f6)] 'gdb-many-windows);启动窗口gdb (global-set-key [f1] 'goto-line);设置M-g为goto-line ;(global-set-key [f7] 'other-frame);跳到其它窗格 (global-set-key [(f3)] 'speedbar);打开speedbar ;;显示行号 (load-file "~/dos/emacs/display-line-number.el") ;;(autoload `display-line-number-mode-on "display-line-number" "display mode" t) (require 'display-line-number) (global-display-line-number-mode t) ;;鼠标滚轮,默认的滚动太快,这里改为3行 (defun up-slightly () (interactive) (scroll-up 3)) (defun down-slightly () (interactive) (scroll-down 3)) (global-set-key [mouse-4] 'down-slightly) (global-set-key [mouse-5] 'up-slightly) ;;代码折 (add-hook 'c-mode-hook 'hs-minor-mode) (add-hook 'c++-mode-hook 'hs-minor-mode) ;全屏 (defun my-fullscreen () (interactive) (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(
周末网上晃荡看到一些关于 vim8 异步和插件的文章,觉得有些新功能挺实用的,所以花了点时间升级下自己的 vim 配置。 本文介绍一些使用到的实用插件以及参考配置。
vim 是一款比较好用的编辑器,被称为编辑器之神。当然linux或者unix默认的vim编辑器比较丑,要经过一系列的美化,对于使用者的要求比较高,没有耐心者勿用。
相信大家看过《简明Vim教程》也玩了《Vim大冒险》的游戏了,相信大家对Vim都有一个好的入门了。我在这里把我日常用Vim编程的一些技巧列出来给大家看看,希望对大家有用,另外,也是一个抛砖引玉的过程,也希望大家把你们的技巧跟贴一下,我会更新到这篇文章中。另外,这篇文章里的这些技巧全都是vim原生态的,不需要你安装什么插件。我的Vim的版本是7.2。
由于我希望能在无sudo权限机器,所以决定安装到~/usr目录下。这个可以通过 --prefix指定
1、下载VPP代码:git clone https://git.fd.io/vpp
前言:逃离windows有很长时间了,特别是当今android盛行的时代,我们没有理由不选择ubuntu作为编译开发android之首选。其实操作系统只是我们使用的一个工具,windows也好linux也罢,自己用的好才是真的好。但是好的开发工具能让我们事半功倍。 先谈谈我的编程开发工具之路,source insight3.5这都是刚工作必备之工具,简直就代码阅读开发之神器。但有一个缺点就是调试编译很是不方便,vs编程的高富帅,编程调试很是好用,界面相当的友好。基本上windows程序开发编译调试面面俱到全
1.vim还没有启动的时候: 在终端里输入 vim file1 file2 ... filen便可以打开所有想要打开的文件 2.vim已经启动 输入 :open file 可以再打开一个文件,并且此时vim里会显示出file文件的内容。
下面是我的 .vimrc 配置文件,每一个配置项都添加了注释说明,详解每一个配置项的作用,以便确认为什么要添加这个配置项。
$ sudo yum install gcc-c++ ncurses-devel python-devel
一直比较忙,太久没写点东西了,今天介绍下之前做的一个 Emacs 脚本。在公司里主要用 C++ 作为生产语言,平时用 Mac 电脑工作,但是代码开发都是在远端服务器上。公司代码异常庞大,思考不逊色 Linux 内核代码量,并且源代码级别依赖的项目更是几十个。作为 Spacemacs 老用户平时都是用它做主力生产工具,尽管源代码在远端服务器上,我仍然用本地 Mac 上带 GUI 的 Spacemacs 开发,通过 Oxfs 可以非常容易的将服务器上文件系统挂到本地进行开发,不卡顿。
为了提高照明控制的智慧程度,开发了一套通过无线 LoRa 技术进行灯具控制的照明控制系统。该系统在设备端和手机端提供了同步的交互控制体验。
Ubuntu 默认情况下只安装tiny-vim , 只要运行 sudo apt-get install vim 安装完整的vim就好了
首先是进入main 获得program_name //这个是执行程序的文件名 然后设置环境变量,初始化退出的状态,代码如下:
一简单介绍一下 下载分享的文件 链接: https://pan.baidu.com/s/1t8yS9jzjewSiGiawBEKcIg?pwd=y4wz 提取码: y4wz 压缩包里面有两个文件,一
指令 效果 C_ ] 直接跳转到定义处 C_ t 往回跳转一次(先输入数字再C_t,可以一次回跳多个) : tags 查看跳转list C_w ] 在新分屏中打开定义,光标定位到定义处 C_w } 在新分屏中打开定义,光标不跳
1.1.网页登录方式,WebShell为腾讯云推荐的登录方式: 登录腾讯云账号后,打开“云产品”->“云服务器”->“实例”,登录就是相应的WebShell界面
在Insert模式下,直接输入文字就会弹出自动补全。然后用Ctrl+n和Ctrl+p上下选择。
lab8 会依赖 lab1~lab7 ,我们需要把做的 lab1~lab7 的代码填到 lab8 中缺失的位置上面。练习 0 就是一个工具的利用。这里我使用的是 Linux 下的系统已预装好的 Meld Diff Viewer 工具。和 lab6 操作流程一样,我们只需要将已经完成的 lab1~lab7 与待完成的 lab7 (由于 lab8 是基于 lab1~lab7 基础上完成的,所以这里只需要导入 lab7 )分别导入进来,然后点击 compare 就行了。
领取专属 10元无门槛券
手把手带您无忧上云