ubuntu 22.04上vim-plug插件管理器,相关插件与ROS2的安装

news2024/11/14 21:15:17

前言

最近,新配置了一版虚拟机,因为学校已经配置好环境的虚拟机忘了带回来,我还想系统的学习一下ROS,并将其用于机械臂的控制,因此用了新的方式配置了vim,并将树莓派raspberry buster系统配置上了ROS1的环境,虚拟机配置了ROS2的环境,这篇文章我先讲的是虚拟机的配置过程,较树莓派配置过程而言较为简单。

基础配置

还是先下载驱动,后安装,内存最好在4GB到8GB左右,具体空间我设置成了100G,大家可以依据自己的需求进行改变,之后进入环境之后要换源和进行安装更新,网络不好就多更新几遍吧

尽量保证网络正常,可以爬取github上的东西

Vim-plug插件管理器的安装

需要先下载curl工具,或者是直接下载压缩包再解压出其中的plug.vim文件

curl工具方式

需要先安装curl

sudo apt-get update
sudo apt-get install curl

之后执行如下命令

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

下载plug.vim方式

下载这个文件之后,执行如下命令

mkdir -p  ~/.vim/autoload/
cp plug.vim  ~/.vim/autoload/plug.vim

Vim相关插件的下载与设置

新建一个文件吧

vim ~/.vimrc

把这些粘进去

call plug#begin()
" The default plugin directory will be as follows:
"   - Vim (Linux/macOS): '~/.vim/plugged'
"   - Vim (Windows): '~/vimfiles/plugged'
"   - Neovim (Linux/macOS/Windows): stdpath('data') . '/plugged'
" You can specify a custom plugin directory by passing it as the argument
"   - e.g. `call plug#begin('~/.vim/plugged')`
"   - Avoid using standard Vim directory names like 'plugin'

" Make sure you use single quotes

" Shorthand notation; fetches https://github.com/junegunn/vim-easy-align
Plug 'junegunn/vim-easy-align'

" Any valid git URL is allowed
Plug 'https://github.com/junegunn/vim-github-dashboard.git'

" Multiple Plug commands can be written in a single line using | separators
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'

" On-demand loading
Plug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }
Plug 'tpope/vim-fireplace', { 'for': 'clojure' }

" Using a non-default branch
Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }

" Using a tagged release; wildcard allowed (requires git 1.9.2 or above)
Plug 'fatih/vim-go', { 'tag': '*' }

" Plugin options
Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }

" Plugin outside ~/.vim/plugged with post-update hook
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }

" Unmanaged plugin (manually installed and updated)
Plug '~/my-prototype-plugin'

" Initialize plugin system
" - Automatically executes `filetype plugin indent on` and `syntax enable`.
call plug#end()
" You can revert the settings after the call like so:
"   filetype indent off   " Disable file-type-specific indentation
"   syntax off            " Disable syntax highlighting

然后执行:PlugInstall命令,等待下载成功

相关命令如下

下载插件                                      :PlugInstall

下载新的插件                在call plug#begin()和call plug#end()之间添加一下新的插件

安装特定插件                           :PlugInstall gist-vim

卸载插件                                    :PlugClean

更新vim-plug                           :PlugUpgrade

更新所有已经安装的插件         :PlugUpdate

查看插件状态                            :PlugStatus

记得安装一下cmake吧,之后安装总用

 退回主目录,输入:

sudo apt install cmake
sudo apt-get install cmake-qt-gui

自动补全插件coc.nvim的安装

先下载一下nodejs和npm

sudo apt update
sudo apt install nodejs npm

查看一下版本

nodejs --version

版本太老怎么办,下载n这个工具吧

sudo npm install n -g
sudo n stable

在确定版本够新之后,设置一下环境变量

curl -sL install-node.now.sh/lts | bash

在指定位置添加插件

" Use release branch (Recommend)
Plug 'neoclide/coc.nvim', {'branch': 'release'}

然后进入~/.vimrc文件,在命令行中输入:CocInfo

出现相关版本信息即为成功。 

之后我们就可以通过这个页面配置相关语言的补全功能了,我这里配置一下python吧

打开这个网页:

Language servers · neoclide/coc.nvim Wiki · GitHub

找到python的部分,发现是要安装coc-pyright这个插件

输入:

pip3 install 'python-language-server[all]'
vim ~/.vimrc
:CocInstall coc-pyright

 Opencv安装

这个库我基本在每个虚拟机上都会配置,主要是自己也是做视觉方面,也是经常使用

我们就按最简单的方式来吧,直接从ubuntu源码库安装,省时省力

sudo apt update
sudo apt install libopencv-dev python3-opencv

 查看一下版本吧,此时版本为4.5.4

python3 -c "import cv2; print(cv2.__version__)"

ROS2安装

欢迎查看ROS2官方文档

https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html

先设置编码吧

sudo apt update
sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

然后查看一下设置的源

apt-cache policy | grep universe

我这里设置的是阿里源

其他源应该和这个类似,release出的项大同小异

然后继续运行

sudo apt update && sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

 更新一下啦

sudo apt update
sudo apt upgrade

我们直接安装桌面版吧,就是时间会比较长

sudo apt install ros-humble-desktop

之后我们可以设置一下环境变量

source /opt/ros/humble/setup.bash
echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc

小海龟仿真

分别开两个终端,输入

ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key

其中第一句指令将启动一个蓝色背景的海龟仿真器,第二句指令将启动一个键盘控制节点 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/131992.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flink系列Table API和SQL之:滚动窗口、滑动窗口、累计窗口、分组聚合

Flink系列Table API和SQL之:窗口一、窗口(Window)二、分组窗口(Group Window)三、窗口表值函数(Windowing TVFs)1.滚动窗口(TUMBLE)2.滑动窗口(HOP)3.累计窗口(CUMULATE)四、分组聚合五、分组聚合实现代码六、分组窗口聚合代码实现七、窗口聚合:滚动窗口…

【SCL】博图SCL应用之音乐喷泉

使用Scl语言编写博图应用:音乐喷泉 文章目录 目录 一、音乐喷泉 1.控制要求 2.I/O分配 3.编写程序 4.效果和完整代码 二、装配流水线模拟控制(练习) 1.控制要求 2.场景 前言 承接上文,这里写一下上一篇的练习题 音乐喷泉应用案…

使用Typora+PicGo+SM.MS实现本地博客图片自动上传

使用TyporaPicGoSM.MS实现本地博客图片自动上传 Typora:一款Markdown 编辑器 PicGo: 一个用于快速上传图片并获取图片 URL 链接的工具. SM.MS: 一个图床网站,注册后有5G免费空间 为什么要让本地图片自动上传 对于一个随时随刻都有可能在文章中贴代码的计…

快来领取你的JavaScript正则表达式速查表

如果我们想对字符串进行相关(增、删、改、查、检索)操作,就可以用接下来的正则表达式实现 什么是正则表达式 正则表达式是用于匹配字符串中字符组合的模式正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本…

家装中,你最后悔的事是什么?上海极家装修公司简介!

家装中,你最后悔的事是什么?上海极家装修公司简介!接触过很多业主,就没有不后悔的!至于原因,因为总会出现各种“考虑不周”,有些真的是失之毫厘差之千里! 下面上海极家装修公司简介!…

Cadence每日一学_12 | 使用 Padstack Editor 制作贴片焊盘和通孔焊盘

最近在学习小马哥的Cadence课程,该系列课程为学习笔记:使用Cadence Allegro绘制小马哥DragonFly四轴飞行器(STM32F4主控)PCB四层板教程。 文章目录一、获取焊盘封装尺寸的途径二、Padstack Editor三、绘制贴片焊盘(以电阻焊盘为例&#xff09…

Odoo 16 企业版手册 - 库存管理之产品类别

产品类别 您可以使用Odoo 库存模块中提供的产品类别功能对产品进行分类。为了执行各种产品操作,必须在Odoo中定义产品类别。Odoo将使产品更容易找到,因为它允许您按产品类别进行筛选。用户可以从库存模块的「配置」菜单访问「产品类别」窗口,…

【Python】sklearn机器学习之Birch聚类算法

文章目录基本原理sklearn调用基本原理 BIRCH,即Balanced Iterative Reducing and Clustering Using Hierarchies,利用分层的平衡迭代规约和聚类,特点是扫描一次数据就可以实现聚类, 而根据经验,一般这种一遍成功的算…

02 elf 的 binary 解析

前言 需求来自于 linux binary 的执行分析, 以及一些反编译工具的实现 比如 readelf, hopper disassemble 什么的 主要的目的是 更加详细了解 elf 的文件格式 为 后续的一些 理解做准备 elf 解析 elf 文件主要分为 四个部分 elfHeader, programHeaders, segments, …

2022年度盘点|聚焦运维服务,云智慧的高光时刻

回首2022,从IE 浏览器退役到AIGC 火遍全球,每一次科技的兴衰演进都打破着技术的新边界。与此同时,随着各行业数据规模爆发式地增长,云智慧作为国内全栈智能运维解决方案服务商,企业数字化地加速转型也为其带来了更多的…

Hibernate validator注解及Spring Boot自定义Hibernate Validator注解校验(超级详细)

一 Hibernate validator是什么 验证数据是贯穿整个应用层(从表示层到持久层)的常见任务。通常在每一层中都需要实现相同的验证逻辑,这样既耗时又容易出错。为了避免这些验证的重复,开发认原经常将验证逻辑直接捆绑到Model域中&…

1.9 基础综合案例|pyechart第三方包

文章目录json数据格式pyecharts模块介绍pyecharts快速入门数据处理这里使用比较经典的pyechart的第三方包。json数据格式 json是一种轻量级的数据交互形式。可以按照json指定的格式去组织和封装数据。或者这么说本质上json就是一个带有特定格式的字符串。 主要功能&#xff1…

【金猿案例展】正官庄——全渠道会员数据治理驱动商业增长

‍珍岛集团案例本项目案例由珍岛集团投递并参与“数据猿年度金猿策划活动——《2022大数据产业年度创新服务企业》榜单/奖项”评选。‍数据智能产业创新服务媒体——聚焦数智 改变商业随着商业品牌的全渠道裂变式发展,对DTC直营会员为中心的综合数据运营提出了新的…

【自学Java】Java基本数据类型

Java基本数据类型 Java基本数据类型 Java 基本数据类型如下表: 序号数据类型大小/位可表示的数据范围默认值1long(长整数)64-9223372036854775808~92233720368547758070L2int(整数)32-2147483648&#x…

设置 MYSQL 数据库编码为 utf8mb4

utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,java程序中将报SQL异常: java.sql.SQLException: Inc…

带音频播放的MPlayer播放器在ARM上的移植笔记

前言 mplayer想要播放带音频的视频文件,需要依赖alsa-lib和zlib,所以交叉编译mplayer前还需要先编译alsa-lib和zlib 一、alsa-lib alsa-lib 是 ALSA 提供的一套 Linux 下的 C 语言函数库,需要将 alsa-lib 移植到板卡上,这样基于…

人话解读LGPLv3

大家都知道:你调用了 LGPL的库,你还是可以开发一个闭源程序。这就说明,LGPL比GPL要宽松。但并不像想象的那么简单。一、为什么会有LGPL作为GPL的发明人Stallman,是自由软件的死忠坚定维护者,为什么还允许让别人用了自己…

2022年终总结-2023新年快乐

这是学习笔记的第 2446篇文章新的一年了,还是得总结点东西,本来想盘一下自己买了多少书,做了哪些有意义的事情,想想我还是自己先慢慢盘吧,发不发出来另说,还是希望写点自己的感悟,也希望对大家有…

LabVIEW共享变量

LabVIEW共享变量 创建共享变量 要创建共享变量,必须先打开一个LabVIEW项目。在项目浏览器窗口中,右键单击终端、项目库或项目库中的文件夹,从快捷菜单中选择新建(New) 变量(Variable),打开共享变量属性(Shared Variable Proper…

dubbo源码实践-SPI扩展

1 概述 SPI的官方文档说明:Dubbo SPI | Apache Dubbo SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时&…