<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[niuiic的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/niuiic</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; niuiic]]></copyright><item><title><![CDATA[vim 专栏声明]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/124934514</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/124934514</guid><author>niuiic</author><pubDate>Mon, 23 May 2022 20:39:33 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
截至 2022 年 5 月，vim 专栏之前的大部分内容已经过时。内嵌 Lua 的 Neovim 及其生态已经起飞。
重写文章太麻烦了，就分享一下我的配置，希望能有所帮助。
再贴一张图。


...]]></description><category></category></item><item><title><![CDATA[在 React Native 中实现可扩展卡片]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/123405863</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/123405863</guid><author>niuiic</author><pubDate>Thu, 10 Mar 2022 16:56:50 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
本文介绍如何在 react native 中自定义一个可以通过点击展开收起的容器，本文中将其称为可扩展卡片。
实现方式
说一下实现思路。
首先，这个卡片应当有两个状态，即展开和收起状态，那么一定有一个描述状态的变量，点一下按钮可以切换变量的值。
然后，在收起状态下，子组件应当不显示，展开状态下子组件显示。要达成这样的效果有很多种方法。比如{isHidden ? children : null}，或者改变组件高度。这样做的效果就是]]></description><category></category></item><item><title><![CDATA[redux-toolkit 在 react 中的用法（续）]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/123149734</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/123149734</guid><author>niuiic</author><pubDate>Sat, 26 Feb 2022 14:37:50 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
rtk-query
rtk-query 是进行网络请求的一个工具，相比其他工具可能用起来会比较方便。下面介绍一下使用流程。
首先是新建一个基础 api。
// apis/base.ts

import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";

export const baseApi = createApi({
  // 根据url自动]]></description><category></category></item><item><title><![CDATA[redux-toolkit 在 react 中的基础用法]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/123139631</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/123139631</guid><author>niuiic</author><pubDate>Fri, 25 Feb 2022 19:28:21 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
本文通过几个例子来帮助初学者快速入门 redux-toolkit 在 react 的应用，不涉及 异步 action 以及与服务器的交互，不解释 redux 的原理和用法，读者应当对 react 和 redux 有一定了解。
quickstart
先来看一个简单的案例，这是redux toolkit document中的例程。
首先来看最终在 react 中使用 redux 的部分。
// features/counter/Co]]></description><category></category></item><item><title><![CDATA[Beego API 快速入门]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/123092085</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/123092085</guid><author>niuiic</author><pubDate>Wed, 23 Feb 2022 15:53:12 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
本文将通过一个简单的案例帮助初学者打通 beego api 开发流程。
环境配置


安装 golang，配置GOPROXY, GOPATH, GOROOT,启用 go module。


在 shell 配置文件中加入export GOPATH="yourPath"。并且将 GOPATH 中的 bin 目录加入 PATH。


安装 bee。go install github.com/beego/bee/v2@latest

]]></description><category></category></item><item><title><![CDATA[使用 vim 作为 sql 编辑器]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/123064212</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/123064212</guid><author>niuiic</author><pubDate>Tue, 22 Feb 2022 11:18:17 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
本文介绍如何将 vim 打造为优秀的 sql 编辑器。本文内容仅涉及对 sql 编辑的基本配置，要获取完整的体验请参考vim 专栏。
代码检查、格式化与代码补全
代码检查与格式化只需安装coc.nvim以及coc-sql插件即可。
coc.nvim的安装与配置可以参考另一篇文章。
参考链接文章中的自定义补全源一节自定义 sql 关键字补全文件。可参考以下内容。
function! coc#source#sql#init() ab]]></description><category></category></item><item><title><![CDATA[Gentoo Ebuild 和 Overlay]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/122852168</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/122852168</guid><author>niuiic</author><pubDate>Thu, 10 Feb 2022 00:02:18 +0800</pubDate><description><![CDATA[本文简要介绍如何创建自己的 ebuild 和 overlay。
自定义 overlay
ebuild 是规定软件包安装的文件，overlay 可以看成是盛放 ebuild 的容器。为了方便包管理系统和维护者管理及使用 ebuild，overlay 是必不可少的。因此在编写 ebuild 之前，首先需要创建一个自己的 overlay。
overlay 的存在形式有两种，一种在本地，一种在远程。本文使用第二种方式。
首先在本地创建一个 overlay。
sudo eselect repository creat]]></description><category></category></item><item><title><![CDATA[Vim 代码折叠]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/122779371</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/122779371</guid><author>niuiic</author><pubDate>Thu, 03 Feb 2022 22:19:48 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
本文简要介绍一种可能适用于多数人的 vim 代码折叠方案。
需求
简单地说，当不关心的代码量比较大时，寻找想要的代码或者在文件内跳转都会非常吃力，这时把这些不关心的代码折叠起来就成了必要。
方案
首先了解一下 vim 内置的 6 种折叠方案，分别是manual（手动定义折叠）、indent（按缩进折叠）、expr（用表达式定义折叠）、syntax（按语法折叠）、diff（将未修改的折叠）、marker（用标志折叠）。

有一个插]]></description><category></category></item><item><title><![CDATA[Vim 单元测试插件]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/122738591</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/122738591</guid><author>niuiic</author><pubDate>Sat, 29 Jan 2022 02:02:54 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
本文介绍一款可以在 vim 中灵活进行单元测试的工具。
需求
对于较大规模的项目而言单元测试是必不可少的。要在 vim 中进行单元测试有很多种方法。比如使用内置终端，自己编写测试脚本，通过asynctasks.vim等。但以上方法均无法做到精确、灵活地测试。比如有 10 个测试文件，共有 100 个测试函数，只想测试第 3 个文件中的第 2 个函数，依靠以上方法会比较困难。
解决方案
vim-test插件是目前最好的选择。该插件]]></description><category></category></item><item><title><![CDATA[在gentoo上使用sway]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/122523229</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/122523229</guid><author>niuiic</author><pubDate>Wed, 19 Jan 2022 21:36:09 +0800</pubDate><description><![CDATA[键位设置
查看输入设备。
export SWAYSOCK=$(ls /run/user/*/sway-ipc* | head -n 1)
swaymsg -t get_inputs

查看键位设置。
man 7 xkeyboard-config

案例如下。可以使用设备类型，也可以使用设备名称。
input "type:keyboard" {
    xkb_layout us
    xkb_options ctrl:swap_lalt_lctl,caps:swapescape
}

input "1:1]]></description><category></category></item><item><title><![CDATA[使用 React Native 中遇到的一些问题]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/122354951</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/122354951</guid><author>niuiic</author><pubDate>Thu, 06 Jan 2022 23:01:41 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
本文记录在使用 React Native 中遇到的一些问题及解决方法。
卡在 info Starting JS server…
如果你的网络没有问题，即没有被墙，那么一般可以使用以下方法解决。
为了测试，首先新建一个项目，npx react-native init AwesomeProject。
然后使用 Android Studio 打开项目的 android 目录，并且开启模拟器。然后就不要动 IDE 里的东西，尤其是一些升]]></description><category></category></item><item><title><![CDATA[Neovim：从 Vimscript 到 Lua]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/122328599</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/122328599</guid><author>niuiic</author><pubDate>Wed, 05 Jan 2022 17:45:23 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
本文简要介绍如何在 neovim 中使用 lua 来代替 vimscript。
why or why not lua

相比 vimscript，lua 有更好的工具支持，包括 lsp 和 formatter（vimscript 没有格式化工具是最大的痛点）。
代码量庞大的情况下 lua 比 vimscript 更有优势。
写 neovim 配置文件时，vimscript 在自动补全方面更强（lua 的全局变量 vim 默认情况]]></description><category></category></item><item><title><![CDATA[在 linux 上重置 AndroidStudio 设置]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/122265380</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/122265380</guid><author>niuiic</author><pubDate>Sat, 01 Jan 2022 09:55:52 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
本文介绍如何在 linux 上重置 AndroidStudio 设置。
需求
重装 AndroidStudio 时如果不重置设置将无法成功安装。
方法
rm -rf ~/.android
rm -rf ~/.gradle
rm -rf ~/.config/Google/AndroidStudio*
rm -rf ~/.cache/Google/AndroidStudio*


...]]></description><category></category></item><item><title><![CDATA[关于如何在使用 genkernel 的情况下修改内核设置]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/122162326</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/122162326</guid><author>niuiic</author><pubDate>Sun, 26 Dec 2021 22:33:27 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
本文介绍如何在使用 genkernel 的情况下修改内核设置。
需求
genkernel 的好处是可以省去内核设置的烦恼，一步完成内核的设置、编译、安装。但其缺点也很明显，当你想修改某一个具体的内核参数时，很可能发现无从下手。虽然 genkernel 可能提供了该功能，但是由于配置过多，可能实在找不到。
那为什么要修改具体某个参数呢，genkernel 不是都安排妥当了吗？事实上并非如此，举个例子。linux kernel 5.]]></description><category></category></item><item><title><![CDATA[在wsl2中安装kali linux]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/121908096</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/121908096</guid><author>niuiic</author><pubDate>Mon, 13 Dec 2021 16:42:20 +0800</pubDate><description><![CDATA[本文介绍如何在wsl2中安装kali linux及其桌面。
why kali
kali是wsl官方支持的linux中安装系统以及桌面最容易的。如果你只是想有一个linux桌面系统，那么它再合适不过了。
安装流程
用管理员权限打开powershell，使用命令wsl --installl -d kali-linux即可安装系统（wsl相关的设置会一并完成）。当弹出kali linux的终端时，设置用户名，密码，同时一定不能忘记用sudo passwd root设置root用户的密码。
然后使用命令wsl --]]></description><category></category></item><item><title><![CDATA[Gentoo 软件包冲突]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/121594801</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/121594801</guid><author>niuiic</author><pubDate>Sun, 28 Nov 2021 17:47:22 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
Gentoo 教程目录

本文介绍 gentoo 系统下的软件包冲突及其解决思路。
软件包冲突
什么是软件包冲突？用一句话来概括就是两者无法共存。无法共存的原因是什么？两者在同一个依赖上有不同的要求。
举个例子。dev-libs/protobuf是media-libs/opencv的一个依赖。它同时也是media-video/vlc的一个依赖。假设现在 vlc 想升级，需要3.19.1版本的 protobuf。但是当前版本的 o]]></description><category></category></item><item><title><![CDATA[在 Gentoo 系统上安装 swift]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/121593394</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/121593394</guid><author>niuiic</author><pubDate>Sun, 28 Nov 2021 16:26:00 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
本文介绍如何在 gentoo 系统上安装 swift。
安装步骤
从 https://www.swift.org/download 直接下载 Amazon Linux 2 版本的工具链。解压。
补全依赖。运行一下 bin 下的 lldb，看缺少什么，上网查一下，安装对应的包即可。一般缺少的是 python3.7 和 dev-libs/libedit。
其他方式

ebuild

这个已经有人做了，可以查看overlay。但是目前]]></description><category></category></item><item><title><![CDATA[深入剖析 C 语言指针]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/118615012</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/118615012</guid><author>niuiic</author><pubDate>Fri, 09 Jul 2021 21:28:49 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
最近得空玩了会儿 stm8 单片机。本来还想着能不能用 rust 语言开发，可惜 llvm 不支持该架构，只好捡起许久不用的 C。复习 C 语法的时候正好看到了一本书 ——《Pointers on C》，中文名《C 和指针》。本以为是主讲指针的，还期待着能学到什么骚操作，没想到还是偏基础，指针的内容也不是很多。不过书中讲解指针的部分算是非常详细了，于是取其精华并略加拙见写成此文，省得下次翻书。
为什么需要指针
程序就是各数据结构]]></description><category></category></item><item><title><![CDATA[在 linux 上开发 stm8]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/118182757</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/118182757</guid><author>niuiic</author><pubDate>Thu, 24 Jun 2021 11:33:36 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
本文介绍如何在 linux（Gentoo）上开发 stm8。
硬件


stm8 开发板，比如 stm8s105k4 最小系统板。


stlink，USB 的那种总是连不上电脑，建议选择白色 20 针的那种。


连接所需杜邦线。


软件
sdcc
使用 sdcc 作为编译器。直接搜索如何安装即可。
stm8-gdb
使用 stm8-gdb 作为调试器。按其官网的介绍下载源文件。
编译之前先安装好 python3.6。如果是]]></description><category></category></item><item><title><![CDATA[使用 rust 开发 stm32：stm32f3discovery-can-rtic]]></title><link>https://blog.youkuaiyun.com/niuiic/article/details/118065800</link><guid>https://blog.youkuaiyun.com/niuiic/article/details/118065800</guid><author>niuiic</author><pubDate>Sun, 20 Jun 2021 08:23:59 +0800</pubDate><description><![CDATA[更多分享内容可访问我的个人博客
https://www.niuiic.top/
本系列教程全部置于stm32专栏。
本例程参考stm32fxxx-hal crate（如stm32f1xx-hal）官方例程，并在官方例程的基础上增加了一些注释，修正了一些错误。可以借鉴不同型号的 stm32 例程，毕竟固件库的核是一样的。
Don’t forget to enable can feature of stm32f3xx_hal crate.
#![no_main]
#![no_std]

use cortex_m]]></description><category></category></item></channel></rss>