|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On August 01 2014 05:29 joolz wrote: any unity devs in this thread? i've been doing game development in C/C++ and AS3 (with PHP backend) but i'd like to learn unity and not sure how to start. i've just heard good things about it, especially for rapid prototyping of games, and apparently some upcoming native support for networking (which would be great for me because that is a weak area of mine), but i'm not sure how the licensing works and how good its cross-platform functionality is in actual practice. I've been doing a lot of Unity stuff this summer and I can tell you it's really nice, it has networking stuff that's incredibly easy to use and it makes it really easy to focus on the game part of things rather than the programming part of things. I mean, I love programming (I'm a C++ programmer by day) but you can make really cool things really quickly in unity. If you want to do 3D stuff though you're going to spend as much time (probably significantly more) doing art than you will programming... The programming comes really easily to me and the modeling not so much so I find I have to spend so much goddamn time animating and then the code to make it happen takes a fraction of the time =P
But really, it's good, it makes it incredibly easy to make powerful games. The license is really nice too, if you don't make more than $100K on your game you can use the free one with no problems (I think... you might wanna research that a little more but I'm reasonably certain). The one area I can't speak to you asked about is the cross platform stuff, but I've looked at it and if it works like they say it does then it looks damn easy.
|
Thanks for the suggestions, I think I'll start with Learn you a Haskell and then decide whether I should truly learn Haskell, OCaml, Erlang, or maybe Scala.
EDIT:
On August 01 2014 05:29 joolz wrote: any unity devs in this thread? i've been doing game development in C/C++ and AS3 (with PHP backend) but i'd like to learn unity and not sure how to start. i've just heard good things about it, especially for rapid prototyping of games, and apparently some upcoming native support for networking (which would be great for me because that is a weak area of mine), but i'm not sure how the licensing works and how good its cross-platform functionality is in actual practice.
This is 2nd hand knowledge, but I know several people who switched from ActionScript (making Flash games, mostly publishing to mobile markets with AIR) to Unity, and they were able to make games in no time. Like, there was honestly no "transition period" that you'd expect from this kind of change, no "3 months spent just learning the platform". I know this isn't helping much, but just as a word of encouragement - apparently it is super easy to start. For licensing, it's possible to go completely free, but AFAIK you won't have access to some of the features (non-essential).
|
Bisutopia19033 Posts
Does anyone here have good resources for learning how to use VIM for C++ development. I'm a fluent C++ developer, but I need to learn how to create, run, and debug projects asap. Thanks!
|
There's not really a project concept in vim.
If you just do a semi colon, you can do everything you can in a normal shell - so, as an example:
:make && ./<executable_name>
Would do the expected. If it's how to use vim you're after then use vimtutor - it should be included with most vim installs.
|
Bisutopia19033 Posts
On August 01 2014 23:48 bangsholt wrote: There's not really a project concept in vim.
If you just do a semi colon, you can do everything you can in a normal shell - so, as an example:
:make && ./
Would do the expected. If it's how to use vim you're after then use vimtutor - it should be included with most vim installs. I did more research as I'm a newbie to the linux OS. I should have specified using the gcc compiler. Editing a file in VIM is easy enough, compiling complex projects, linking multiple projects, debugging using ggc compiler is a different beast. For now at least gcc -Wall -filename has moved me forward.
|
On August 01 2014 21:25 BisuDagger wrote: Does anyone here have good resources for learning how to use VIM for C++ development. I'm a fluent C++ developer, but I need to learn how to create, run, and debug projects asap. Thanks! Vim by itself isn't much of a tool for managing projects. That's fine, because that's not where the power of vim lies. There are plugins that help with project support, such as NERD Tree, but I would advice against those, as they take away from that which makes vim awesome.
I would recommend a decent folder structure and either Command-T or CtrlP for quick file navigation.
If you want context-sensitive completion, there is YouCompleteMe.
Managing builds and dependencies depends a lot on your environment. You can use good old make, rake (I had no idea that was created by the late Jim Weirich until just now), CMake or many others. If you're developing on Windows and want to use something else than CMake or MinGW or Cygwin ports, there are command line tools that can manipulate Visual Studio solution and project files, which can be built using MSBuild. I haven't used any of those or looked into them much, though.
Vim does not have an integrated debugger. There are plugins such as clewn, but I haven't used it. I tend to do my debugging in another environment, one that is better at it.
There are of course a ton more plugins to vim that can help you customize it to your needs, but I personally feel that quite a few of them take away from vim's raw text editing power. A few that I do like to use are Tim Pope's excellent vim-surround and vim-commentary.
SnipMate and UltiSnips are also very popular.
Hope that helps you out a bit.
On August 01 2014 23:48 bangsholt wrote: There's not really a project concept in vim.
If you just do a semi colon, you can do everything you can in a normal shell - so, as an example:
:make && ./<executable_name>
Would do the expected. If it's how to use vim you're after then use vimtutor - it should be included with most vim installs. That would be a regular old colon, a semi colon is what you end lines of code with. =]
|
On August 02 2014 04:26 Shenghi wrote:Show nested quote +On August 01 2014 21:25 BisuDagger wrote: Does anyone here have good resources for learning how to use VIM for C++ development. I'm a fluent C++ developer, but I need to learn how to create, run, and debug projects asap. Thanks! Vim by itself isn't much of a tool for managing projects. That's fine, because that's not where the power of vim lies. There are plugins that help with project support, such as NERD Tree, but I would advice against those, as they take away from that which makes vim awesome. I would recommend a decent folder structure and either Command-T or CtrlP for quick file navigation. If you want context-sensitive completion, there is YouCompleteMe. Managing builds and dependencies depends a lot on your environment. You can use good old make, rake (I had no idea that was created by the late Jim Weirich until just now), CMake or many others. If you're developing on Windows and want to use something else than CMake or MinGW or Cygwin ports, there are command line tools that can manipulate Visual Studio solution and project files, which can be built using MSBuild. I haven't used any of those or looked into them much, though. Vim does not have an integrated debugger. There are plugins such as clewn, but I haven't used it. I tend to do my debugging in another environment, one that is better at it. There are of course a ton more plugins to vim that can help you customize it to your needs, but I personally feel that quite a few of them take away from vim's raw text editing power. A few that I do like to use are Tim Pope's excellent vim-surround and vim-commentary. SnipMate and UltiSnips are also very popular. Hope that helps you out a bit. Show nested quote +On August 01 2014 23:48 bangsholt wrote: There's not really a project concept in vim.
If you just do a semi colon, you can do everything you can in a normal shell - so, as an example:
:make && ./<executable_name>
Would do the expected. If it's how to use vim you're after then use vimtutor - it should be included with most vim installs. That would be a regular old colon, a semi colon is what you end lines of code with. =]
I love vim, but I mostly use it either for quick-and-dirty regular file edits or other stuff that doesn't involve working on the entire project. I mean, I do most of the stuff in vim, but when it comes to code refactoring across the entire project, debugging etc. I turn to some IDE (Geany for simple stuff, big and clunky stuff like NetBeans or Eclipse for heavy lifting).
If you want to develop in C++ on Linux you might want to check Code::Blocks but I have no idea if it's any good as I never worked on big projects in C++ so vim + mc + gpp was basically all I ever needed.
Oh, and when it comes to IDEs I believe that KDevelop is pretty nice.
If you want or need to stick to vim, I suggest you familiarize yourself with some extra tools:
grep ctags make git mc (if you're kind of a 'visual' guy that likes to see the directory tree) g++
Most of it is what gcc development team uses (and that's a huge project). Have fun.
|
On August 02 2014 05:26 Manit0u wrote:\ grepctagsmakegitmc (if you're kind of a 'visual' guy that likes to see the directory tree) g++Most of it is what gcc development team uses (and that's a huge project). Have fun. QFE - if you want to use Vim as your IDE (not saying it's a bad idea - I'm an Emacs guy so I can see where you're coming from) you're going to have to do a bit of work to get it to perform like the IDEs you're used to but it can be more powerful for sure if you get it working =)
I would definitely recommend getting to know make REALLY well - it seems like it is what you're looking for, basically it lets you write out a file with all your compiler commands and then just type 'make' to read the commands from there instead of typing the same GCC command with seventy-five flags over and over again. Admittedly it's a bit more complex than that but if you're a programmer anyways you can almost definitely get the hang of writing makefiles =)
Also, ctags is essential for any moderately large project, it's so annoying to have to find things on your own...
|
|
On August 02 2014 04:24 BisuDagger wrote:Show nested quote +On August 01 2014 23:48 bangsholt wrote: There's not really a project concept in vim.
If you just do a semi colon, you can do everything you can in a normal shell - so, as an example:
:make && ./<executable_name>
Would do the expected. If it's how to use vim you're after then use vimtutor - it should be included with most vim installs. I did more research as I'm a newbie to the linux OS. I should have specified using the gcc compiler. Editing a file in VIM is easy enough, compiling complex projects, linking multiple projects, debugging using ggc compiler is a different beast. For now at least gcc -Wall -filename has moved me forward.
Check out my vimrc file! This will download and install Vundle and a lot of good bundles. (also, un-comment the YouCompleteMe one, and compile it, it's awesome auto-complete!
https://github.com/arnstein/vim/blob/master/vimrc
|
|
Man, screw the autocompleters. That's the most annoying stuff about most IDEs - the fact that they try to be smarter than me.
|
On August 02 2014 10:00 Manit0u wrote: Man, screw the autocompleters. That's the most annoying stuff about most IDEs - the fact that they try to be smarter than me. That's what I said too and then I got hooked and now I freak out when tab doesn't fill in exactly what I'm thinking after three letters... it's bad
|
On August 01 2014 21:25 BisuDagger wrote: Does anyone here have good resources for learning how to use VIM for C++ development. I'm a fluent C++ developer, but I need to learn how to create, run, and debug projects asap. Thanks!
Hey BusiDagger,
For starters - the VIM mindset isn't really one you can learn just off a couple of tutorials. It's really going to take a lot of time and effort to master VIM, so just keep at it. For specifically dealing with C++, here are a couple of things I can recommend:
Map some keys to compile and debug. Install CGDB (it's basically a vim-key'd GDB. You absolutely must learn how to use GDB, because if you master it will destroy any other debugger out there.) It lets you use Esc to go into code search mode and i to type into the gcc console, etc. Here's a mapping i'm just making off the top of my head (put this in your .vimrc file or you can run the command in ex mode every time if you want to be lazy...)
map <F5> :!clear && gcc -o bin % && ./bin<CR>
To explain: Every time you press F5 it will now execute this command. The ! says execute an external program - in this case the CLEAR unix program, followed the gcc which creates an executable file called bin. The % substitutes it with the file name in vim. In GENERAL, you want to replace that gcc command with make. The <CR> means carriage return, which just executes the command without you having to press enter.
I wish I had my virtual machine with me, but to make <F6> to the debugger can be as complex or simple as you like. You can do something like
map <F6> :!make clean && make && gdb -x b main bin<CR>
The above may not be 100% correct but basically, it will run gdb and break at main. The great thing is, you can make these as complex or as simple as you like. If you have a specific function you need to debug or whatever, just change your f6. And you don't need to restart vim every time you modify your vimrc. Use :source ~/.vim/vimrc and it will take in the "new" vim settings.
Also - don't get any plugins for navigating file structures. That's ridiculous, VIM already has a great file browser. For example, if you want to replace your current file with another file, just use :e .
Damn, friend is here will update this later.
|
Bisutopia19033 Posts
All of you kick ass. Thanks for all the useful information. The only way to move forward at my company is to jump on the Linux projects. Coming from VS studio it is a little intimidating knowing so little.
|
On August 02 2014 10:00 Manit0u wrote: Man, screw the autocompleters. That's the most annoying stuff about most IDEs - the fact that they try to be smarter than me. I totally agree with the bolded part (emphasis mine). It seems to be especially annoying when you write something that involves names that do not exist yet.
However, YouCompleteMe does a good job of staying the heck out of my way. It doesn't complete until you tell it to. And using a fuzzy completer correctly does make me a lot faster.
|
On August 02 2014 12:14 BisuDagger wrote: All of you kick ass. Thanks for all the useful information. The only way to move forward at my company is to jump on the Linux projects. Coming from VS studio it is a little intimidating knowing so little.
It can be hard in the beginning, but once you get used to Vim, you get addicted to it. I'm so addicted that I even use Vimium for Chrome, so I can navigate like in Vim in Chrome! In the first week, you will be slower than with an IDE, but after a week you should know about going into insert mode and into navigation mode, and it will already be about as fast as an IDE. The next week you will be faster. At last that's what happened to me.
It's a LOT of stuff to learn in Vim, but here's what I would recommend you to start with:
1. First of all, hjkl. Navigating with this makes you a LOT more efficient. 2. In navigation mode, e jumps to the end of the current word, b to the beginning of the current word. 3. :+number jumps you to line number. Example: :40 makes you jump to line 40 4. y to copy, p to paste, d to delete. You can also combine this one and the usage of :number. Example: :1,49d will delete everything from line 1 to 49. 5. Shift+v to mark a line. Then you can move up or down to mark several lines. 6. Shift + } jumps to the next function
I think these are the most basic things, the ones you should learn first. I'm interested in input from other people though. At least that's what I learnt the first week.
|
On August 02 2014 11:41 Abductedonut wrote: Also - don't get any plugins for navigating file structures. That's ridiculous, VIM already has a great file browser. For example, if you want to replace your current file with another file, just use :e .
I disagree. Command-T is amazing.
|
fuzzy file finding is super important to me, I run a small team of engineers and when I have to give a product person a time estimate to complete something or point a developer in the right direction for debugging something, I jump around the codebase a lot.
I need to be able to instantly find a file that I only sort-of remember the name of because there are (tens of) thousands of files in the project.
|
I've been trying to develop VS plugins actually to make it a bit nicer. It's a lot harder than I thought :/
|
|
|
|